Ik ben bezig met een script die een commando remote uitvoerd. Het script haalt eerst variabelen uit een tekstbestand en gaat hiermee aan de slag.
Het probleem is nu dat wanneer de remote command is uitgevoerd, het script (volgens mij) een exit code krijgt van dat commando zodat hij uit een while loop vliegt. Kan ik die exit status ook veranderen?
Hier het script:
/me zegt dat hij nu uit de while lus springt!
Het probleem is nu dat wanneer de remote command is uitgevoerd, het script (volgens mij) een exit code krijgt van dat commando zodat hij uit een while loop vliegt. Kan ik die exit status ook veranderen?
Hier het script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| # Zet de counter op 0
count=0
# Lees het bestandje "ip.list" regel voor regel
while read line
do
# Zet de ingelezen regel in de variabele regel
regel="$line"
# Zet het IP in een variabele
ip=`echo $regel | awk '{print $1}'`
# Zet de connectienaam in een variabele
ipsec_naam=`echo $regel | awk '{print $2}'`
# Ping het IP (1 pakket)
reply=`ping -c 1 $ip | grep packets | awk '{print $4}'`
stamp=`date "+%D %H:%M"`
# Kijken of er een reply is gekomen op de ping request
if [ "$reply" = "0" ]; then
echo $stamp $ip": "$ipsec_naam" heeft geen ipsec verbinding."
echo "Sluiten van IPSec verbinding op gateway."
command="nohup /usr/sbin/ipsec auto --down $ipsec_naam; nohup /usr/sbin/ipsec auto --unroute $ipsec_naam"
slogin remote@192.168.1.10 $command |
/me zegt dat hij nu uit de while lus springt!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| else echo $stamp $ip": "$ipsec_naam" - IPSec verbinding." echo "Niets te doen :'( ." fi count=$[$count + 1] done < ip.list echo "$count connecties bekeken." # EOF |