Eu provavelmente olharia para algo tão simples como:
#!/bin/bash
pgrep vpnc
STATUS=${?}
if [ ${STATUS} -ne 0 ]; then
/usr/sbin/vpnc configname
fi
Isso iniciará o vpnc, caso ainda não esteja em execução.
Eu sou um daqueles que precisam usar vpnc
para uma conexão com uma rede. Eu tentei o exemplo de muitos tutoriais como isto , este e isso sem sucesso. Eu sei decidiu escrever um pequeno script para reconectar após a reconexão. meu shell script é tão ruim que eu não sei como registrar o que acontece na caixa. Além disso, eu acabei de perceber que o ping está desabilitado na máquina que eu preciso conectar. Como posso contornar isso? aqui está o meu script que é adicionado ao crontab
para ser executado a cada 5 minutos
#!/bin/bash
HOST=" 192.168.0.18"
pinging(){
ping -c6 $HOST
return $?
}
pinging
RESULT=$?
case $RESULT in
0)
#ping OK everything is fine
;;
1)
# no reply, meaning the host down then reconnect
/usr/sbin/vpnc configname
;;
2)
## Misc. ping errors,
# don't know what to do here. how do i log this?
;;
esac
para recapitular, preciso:
Pode dar a volta por aí. Outras alternativas?
Ser capaz de registrar o que acontece a cada corrida ou assim
Alguém pode me ajudar a conseguir isso?
Eu provavelmente olharia para algo tão simples como:
#!/bin/bash
pgrep vpnc
STATUS=${?}
if [ ${STATUS} -ne 0 ]; then
/usr/sbin/vpnc configname
fi
Isso iniciará o vpnc, caso ainda não esteja em execução.
de googling e readind eu decidi basear o teste em telnet, pois é assim que eu testo manualmente na caixa. Abaixo está minha abordagem. Por enquanto, tudo bem. Existe alguma ferramenta para fazer meu registro diário ou algo assim?
Sinta-se à vontade para fazer sugestões. Obrigado
#!/bin/bash
HOST="192.168.0.18"
LOGFILE=/var/log/vpnc/configname.log
exec 3>/dev/tcp/${HOST}/8888
if [ $? -eq 0 ]
then
echo "$(date +%Y-%m-%d:%T) :Telnet accepting connections" | tee -a $LOGFILE
else
echo "$(date +%Y-%m-%d:%T) Telnet connections not possible" |tee -a $LOGFILE
echo "$(date +%Y-%m-%d:%T) Reconnecting to telnet" | tee -a $LOGFILE
pid=$(pidof vpnc)
if test -z "${pid}"
then
echo "$(date +%Y-%m-%d:%T) pid is null" | tee -a $LOFGILE
echo "$(date +%Y-%m-%d:%T) restarting vpnc" | tee -a $LOGFILE
/usr/sbin/vpnc configname | tee -a $LOGFILE
else
echo "$(date +%Y-%m-%d:%T) vpnc is running but not connected. killing ${pid}" | tee -a $LOFGILE
kill -9 ${pid}
echo "$(date +%Y-%m-%d:%T) restarting vpnc" | tee -a $LOFGILE
/usr/sbin/vpnc configname | tee -a $LOGFILE
echo "$(date +%Y-%m-%d:%T) vpnc running with pid: $(pidof vpnc)" | tee -a $LOGFILE
fi
fi
Eu escrevi algo parecido por algum tempo e ele se transformou em um projeto de estimação. É um script 'VPN companion' (sim, acabei de criar essa frase) que verifica ativamente o sistema para determinar se algo está errado (por exemplo, VPN cai).
link
É muito bem comentado se você está procurando algo para modificar para o seu propósito.