====== Skript eduroam-ping ====== Skritp je určen k udržování aktivního IPsec spojení. Více informací naleznete v dokumentu [[cs:spravce:pripojovani:ipsec:linux#Udržování aktivního IPsec spojení]]. #!/bin/bash #Version: 2006.05.25 /usr/sbin/setkey -DP |grep ^[0-9] |tr " " "\n" |grep -v ^any| grep -v 0\.0\.0\.| sed "s/\[any\]//" | sort -u |\ while read IP do if /sbin/ifconfig | grep "inet addr:$IP ">/dev/null 2>&1 ; then # Tohle je nase IPcko "X"; false else TMPF=`mktemp /tmp/eduRoam-ping-$IP-XXXXXX` echo "#!/bin/bash" >>$TMPF # Smazat sam sebe echo "rm $TMPF" >>$TMPF # Chvilicku pockat at vsechny pingy neodchazi v jeden okamzik, to by # mozna mohlo zahltit linku echo "sleep `perl -e 'print(rand(3));'`" >>$TMPF # Mrknout jesli tenhle host nahodou jeste neni opingavan jinym # procesem. Bude se to poustet pomerne casto a opravdu nestojim o # to mit spustenych milion pingu najednou ;) echo "if [ -f /var/lock/eduRoam-ping-$IP ] then PID=\`cat /var/lock/eduRoam-ping-$IP 2>/dev/null\` if [ -e /proc/\$PID ] then # Proces ktery si vytvoril zamek bezi - tak to zabalime my exit 0; fi fi echo \$\$ > /var/lock/eduRoam-ping-$IP" >>$TMPF # Pingnout na protejsek echo "DATE=\`date +'%s'\`;" >>$TMPF echo "PING=\`ping -s 512 -c 3 -q $IP 2>/dev/null |grep transmitted\`">>$TMPF # Zapsat co jsme zjistili echo "logger -p local5.info -t eduRoamPing[\$\$] \"\$DATE: $IP: \$PING\"" >>$TMPF # Uklidit svuj zamek echo "rm /var/lock/eduRoam-ping-$IP" >>$TMPF chmod +x $TMPF && $TMPF & fi done ====== ====== --- // [[http://staff.cesnet.cz/~semik|Jan Tomášek]] 11.09.2006 12:16// dokument převeden z www.eduroam.cz