Я использую Debian 6.0.6. Я отредактировал root crontab несколько дней назад, чтобы добавить эту строку:
00,10,20,30,40,50 * * * * /root/Scripts/con_switch6.sh >> /var/log/con_switch_diario.log 2>&1
Я подключаюсь к этому серверу Linux с помощью Putty. Тем временем консоль Putty открывается и подключается, и каждые 10 минут внутри файла "con_switch_diario.log" создается строка (т.е. скрипт выполняется).
Но когда я закрыл консоль Putty (то есть соединение ssh завершилось), а затем снова открыл ее, я обнаружил, что за этот промежуток времени в этом файле журнала нет записей. Я провел несколько тестов и обнаружил, что когда консоль закрыта, скрипт не выполняется crontab.
Содержание сценария таково:
#!/bin/sh
IPcorreo="83.25.10.84"
IP1="192.168.10.125"
IP2="192.168.10.154"
maxPloss="15"
IPfirewall=`traceroute -m 3 $IPcorreo | grep $IP1`
if [ $? -eq 0 ]
then
echo "$IPfirewall: `date`"
ploss=$(ping -q -w30 $IPcorreo | grep -o "[0-9]*%" | tr -d %) > /dev/null 2>&1
if [ "$ploss" -gt "$maxPloss" ]
then
/usr/bin/expect /root/Scripts/delete.exp
sleep 60
echo "Switch Email: `date`" | mail -s System system@domain.com
fi
else
traceroute -m 3 $IPcorreo | grep $IP2
fi
Я не знаю, как я мог решить эту проблему. Спасибо за помощь.
PS: на том же сервере, внутри crontab, я определил другие скрипты ... все они работают нормально каждый день. Единственное различие, которое я нашел между ними, заключается в том, что они используют
#!/bin/bash
вместо
#!/bin/sh
Но даже если я изменил его в моем скрипте, чтобы использовать bash, у меня все еще остается та же проблема.