Показать полную графическую версию : Вопрос по Cron!
Добрый день! Вообщем такая задача стоит!
При обрыве l2TP соединения нужно автоматический переконект!
Скрипт выглядит так:
#!/usr/bin/perl
chomp($isi=`/bin/ping -c 3 173.194.37.104|grep "64 bytes"|wc -l`);
if (not($isi>0)) {
system("date");
printf("Restart Inet\n");
system("echo `date` PPP restarted by timeout... >> /var/log/inetrestart.log");
system("/usr/sbin/xl2tpd stop");
sleep(5);
system("/usr/sbin/xl2tpd start");}
else {
system("echo `date` PPP works ok! >> /var/log/inetrestart.log");
}
В cron прописано:
0-59 * * * * /home/mkr/inetrestart
ак вот при прямом запуске скрипта скрипт выполняется, из под кроне нет!
В логе крона всё нормально!
Где собака зарыта???
А что в логе пишет? И в каком кронтабе задание?
Telepuzik
02-09-2010, 12:39
Gef
Cron перезапускали?
Serenikii
02-09-2010, 15:36
1 вариант
1. Вводишь crontab -e
2. Добавляешь пробел
3. Сохраняешься и выходишь - таблица крона обновилась (перезапуск не нужен)
2 вариант
1. Проверяешь от имени какого пользователя запускается крон
2. Делаешь су <имя пользователя крона>
3. Проверяешь, запускается ли скрипт
пасибо за ответ! Крон перезапускал! В мыльном письме приходит что синтаксис ОК! В своём логе пишет, что задание запущено! В чём трабл?
В чём трабл? »
Трабл в том, что вы не можете нормально ответить на вопросы.
Я просил привести строку из лога и указать в каком кронтабе находится задание.
Задание находится под рутом! Лог привести не могу щас, вечерем дам, инет на той стороне отсох!
Вот что в логе:
/usr/sbin/cron [2877]: (root) CMD (/home/mkr/inetrestart)
/usr/sbin/cron [2881]: (root) CMD (/home/mkr/inetrestart)
Срабатует каждую минуту!
Вот что приходит на мыло:
/home/mkr/inetrestart syntax OK
Такие вот дела....
/home/mkr/inetrestart syntax OK »
"syntax OK" показывает, что производится проверка синтаксиса, а не запуск скрипта. Это perl запускается с опцией -c
А вот почему, непонятно.
Так в каком направлении копать?
ch3burashka
03-09-2010, 16:52
chmod 744 /home/mkr/inetrestart --> executable flag присутствует?
в крайнем случае я бы попробовал написать shell wrapper:
#!/bin/bash
. $HOME/.bash_profile
/home/mkr/inetrestart
Да, на исполнение файлик стоит! Скрипт просто запускает перловский скрипт, ятак понимаю! А этот скрипт надобно прописать в кроне?
покажи вывод файла /var/spool/cron/crontabs
ch3burashka
04-09-2010, 13:19
вот простенький bash скрипт, кот. делает тоже самое
PS я его не проверял
#!/bin/bash
. $HOME/.bash_profile
export IP2CHK="173.194.37.104"
export LOG=/var/log/inetrestart.log
ping -c 3 ${IP2CHK} &>/dev/null
if [ "$?" -ne "0" ]; then
echo "[`date '+%Y-%m-%d %H:%M:%S'`] PPP restarted by timeout..." | tee -a ${LOG}
/etc/init.d/xl2tpd restart
else
echo "[`date '+%Y-%m-%d %H:%M:%S'`] PPP works ok!" >> ${LOG}
fi
Спасибо огромное за ответы! Сейчас столкнулся с такой проблеммой!
Поменял полность железо: Мать, процы, память....
При загрузке не может определить разделы и вывалюется в шелл!!!
Систему перестонавливать не охота, уж много чего на ней крутится!
Как победить???? Бьюсь дней 5 уже.....
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.