Browse Source

Enancement in refresh & kill processes

Yann Weber 6 years ago
parent
commit
8db01ea418
1 changed files with 40 additions and 7 deletions
  1. 40
    7
      test.sh

+ 40
- 7
test.sh View File

1
 #!/bin/sh
1
 #!/bin/sh
2
+REFRESH=2
2
 HOSTS_FILES="$HOME/.hosts_scanner"
3
 HOSTS_FILES="$HOME/.hosts_scanner"
3
-#HOSTS_FILES="/tmp/hosts"
4
 verbose=0
4
 verbose=0
5
 res_file=$(mktemp -t hosts_scanner.XXXXXXXXXX)
5
 res_file=$(mktemp -t hosts_scanner.XXXXXXXXXX)
6
 date_cmd="date --rfc-3339=s"
6
 date_cmd="date --rfc-3339=s"
9
 
9
 
10
 pids=""
10
 pids=""
11
 clean_exit() {
11
 clean_exit() {
12
+	clear
13
+	reset
12
 	echo "Ctrl+C pressed, exiting..."
14
 	echo "Ctrl+C pressed, exiting..."
13
 	for pid in $(echo $pids)
15
 	for pid in $(echo $pids)
14
 	do
16
 	do
17
+		echo killing $pid
15
 		kill $pid
18
 		kill $pid
19
+	done
20
+	for pid in $(echo $pids)
21
+	do
22
+		wait $pid
16
 		echo $pid killed
23
 		echo $pid killed
17
 	done
24
 	done
18
 	rmdir ${res_file}.lock 2>/dev/null
25
 	rmdir ${res_file}.lock 2>/dev/null
25
 	echo "CIDR killed, cleaning..."
32
 	echo "CIDR killed, cleaning..."
26
 	for pid in $(echo $cidr_pids)
33
 	for pid in $(echo $cidr_pids)
27
 	do
34
 	do
35
+		echo CIDR killing $pid
28
 		kill $pid
36
 		kill $pid
29
-		echo $pid killed
37
+		wait $pid
38
+		echo CIDR $pid killed
30
 	done
39
 	done
31
 	exit 0
40
 	exit 0
32
 }
41
 }
49
 	# $1 host
58
 	# $1 host
50
 	# $2 file
59
 	# $2 file
51
 	# $3 lock
60
 	# $3 lock
61
+	# $4 delay
62
+
52
 	lock="$3"
63
 	lock="$3"
64
+	test -z "$4" && delay=5 || delay=$4
53
 	last_up="never"
65
 	last_up="never"
54
 	
66
 	
55
 	while [ 1 ]
67
 	while [ 1 ]
75
 
87
 
76
 		semrelease $lock
88
 		semrelease $lock
77
 
89
 
78
-		sleep 5
90
+		sleep $delay
79
 	done
91
 	done
80
 }
92
 }
81
 
93
 
84
 	# $1 cidr
96
 	# $1 cidr
85
 	# $2 result file
97
 	# $2 result file
86
 	# $3 lock
98
 	# $3 lock
99
+	# $4 delay
100
+
101
+	test -z "$4" && delay=5 || delay=$4
87
 
102
 
88
 	trap clean_cidr 15
103
 	trap clean_cidr 15
89
 	while [ 1 ]
104
 	while [ 1 ]
90
 	do
105
 	do
106
+		semlock $lock
107
+		echo "CIDR scanning $1" >&2
108
+		semrelease $lock
109
+
91
 		for h in $(nmap -sP -oG - $1 | grep "Up$" | cut -d " " -f 2)
110
 		for h in $(nmap -sP -oG - $1 | grep "Up$" | cut -d " " -f 2)
92
 		do
111
 		do
93
 			rehost=$(echo $h|sed 's/\./\\./g')
112
 			rehost=$(echo $h|sed 's/\./\\./g')
94
-			if grep -v " $rehost " $2 > /dev/null
113
+			if grep " $rehost " $2 > /dev/null
95
 			then
114
 			then
115
+				continue
116
+			else
96
 				printf "%30s %8s %30s\n" $h "unknw" "unknwn" >> $res_file
117
 				printf "%30s %8s %30s\n" $h "unknw" "unknwn" >> $res_file
97
 				upd_ping $h $2 $3 &
118
 				upd_ping $h $2 $3 &
98
 				pid=$!
119
 				pid=$!
99
 				cidr_pids="${cidr_pids}\n$pid"
120
 				cidr_pids="${cidr_pids}\n$pid"
121
+
122
+				semlock $lock
123
+				echo "$pid scanning $h" >&2
124
+				semrelease $lock
100
 			fi
125
 			fi
101
 		done
126
 		done
127
+
128
+		semlock $lock
129
+		echo "CIDR scanned $1" >&2
130
+		semrelease $lock
131
+
132
+		sleep $delay
102
 	done
133
 	done
103
 }
134
 }
104
 
135
 
116
 do
147
 do
117
 	if echo $h |grep -v '/' > /dev/null
148
 	if echo $h |grep -v '/' > /dev/null
118
 	then
149
 	then
119
-		upd_ping $h $res_file $lock &
150
+		upd_ping $h $res_file $lock 5 &
120
 	else
151
 	else
121
 		# cidr scan
152
 		# cidr scan
122
-		cidr_scan $h $res_file $lock &
153
+		cidr_scan $h $res_file $lock 10 &
123
 	fi
154
 	fi
124
 	pid=$!
155
 	pid=$!
125
 	pids="${pids}\n$pid"
156
 	pids="${pids}\n$pid"
129
 
160
 
130
 while [ 1 ]
161
 while [ 1 ]
131
 do
162
 do
163
+	#sleep 1
164
+	#continue
132
 
165
 
133
 	semlock $lock
166
 	semlock $lock
134
 	clear
167
 	clear
145
 	sed -E -e "s/\snever$/$(tput sgr0)\0/" -e "s/^.* down .*$/$(tput setaf 1)\0$(tput sgr0)/"  $res_file
178
 	sed -E -e "s/\snever$/$(tput sgr0)\0/" -e "s/^.* down .*$/$(tput setaf 1)\0$(tput sgr0)/"  $res_file
146
 
179
 
147
 	semrelease $lock
180
 	semrelease $lock
148
-	sleep 1
181
+	sleep $REFRESH
149
 done
182
 done

Loading…
Cancel
Save