Я один из тех, кому нужно использовать vpnc
для соединения с сетью. Я попробовал так много примеров учебников, как , это , , это и , это , но безуспешно. Я знаю, решил написать небольшой скрипт для переподключения после переподключения. Мой сценарий оболочки настолько плох, что я не знаю, как записать, что происходит на коробке. Помимо этого, я только что понял, что пинг отключен на машине, к которой мне нужно подключиться. Как я могу обойти это? вот мой сценарий, который добавляется в crontab
для запуска каждые 5 минут
#!/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
, поэтому для подведения итогов мне нужно:
. , Другие альтернативы?
Уметь записывать, что происходит при каждом запуске или около того
Может ли кто-нибудь помочь мне достичь этого?
Некоторое время назад я написал нечто подобное, и это как бы превратилось в проект для домашних животных. Это сценарий «VPN-компаньон» (да, я только что придумал эту фразу), который активно проверяет систему, чтобы определить, что-то пошло не так (например, VPN пропадает).
http://code.google.com/p/ipcheck/source/browse/ipcheck.sh
Это довольно хорошо прокомментировано, если вы ищете что-то для изменения твоя цель.
Вероятно, я бы посмотрел на что-то простое:
#!/bin/bash
pgrep vpnc
STATUS=${?}
if [ ${STATUS} -ne 0 ]; then
/usr/sbin/vpnc configname
fi
. Затем он запустит vpnc, если он еще не запущен.
из Google и Readind я решил основывать тестирование на telnet, так как именно так я тестирую вручную на коробке. Ниже мой подход. Все идет нормально. Есть ли какой-нибудь инструмент, чтобы сделать мой журнал ежедневным или что-то подобное?
Не стесняйтесь делать предложения. Спасибо
#!/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