Ich habe eine pptp-VPN-Verbindung, die von meinem (Debian-) Linux-Server hier zu einem ISA2003-Server an einem Remote-Standort wählt.
Die Internetverbindung an (beiden) Enden ist etwas zwielichtig, daher habe ich ein kleines Skript geschrieben, das aufgerufen werden soll, pon myvpnlink
wenn festgestellt wird, dass die Verbindung unterbrochen wurde.
Dieses Skript funktioniert einwandfrei, wenn ich es über die CLI ausführe. Wenn es jedoch über cron aufgerufen wird, scheint der pon-Aufruf fehlzuschlagen.
Ich habe dies sowohl in Bash als auch in Perl neu geschrieben und habe mit jedem das gleiche Problem. Das Skript wird ausgeführt, es kann erkennen, ob die VPN-Verbindung gerade aktiv oder pon
inaktiv ist, es ruft auf, welche Aufrufe pppd aufrufen, welche Verbindung nicht hergestellt werden kann. Wenn ich dann gehe und das Skript von der CLI ausführe, ist es in Ordnung.
Alle Gedanken wären sehr dankbar - das macht meine Box jetzt rein.
#Syslog (on a failure):
Dec 30 17:02:01 LogServer /USR/SBIN/CRON[4530]: (root) CMD (/bin/bash /root/scripts/vpnup.bash >> /root/scripts/vpn.log)
Dec 30 17:02:01 LogServer pppd[4542]: pppd 2.4.4 started by root, uid 0
Dec 30 17:02:01 LogServer pppd[4542]: Couldn't get channel number: Input/output error
Dec 30 17:02:01 LogServer pppd[4542]: Exit.
#Cron Line
* * * * * root /bin/bash /root/scripts/vpnup.bash >> /root/scripts/vpn.log
Aktualisieren:
Funktioniert jetzt gut. Ich habe meinen Cron-Eintrag über /etc/cron.d/vpn aufgerufen, was ursprünglich so aussah:
MAILTO=root
* * * * * root /bin/bash /root/scripts/vpnup.pl >> /root/scripts/vpn.log
Jetzt, da es geändert wurde, funktioniert pptp perfekt :-D
MAILTO=root
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * root perl /root/scripts/vpnup.pl >> /root/scripts/vpn.log
Vielen Dank an Justin für die Beispiele :)