- shell скрипт в cron'е(косяк), guest, 15:52 , 25-Июн-07 (1)
Да интузиазм АЖНО прет Че даже ни у кого ни каких идей нет?
- shell скрипт в cron'е(косяк), vic, 16:13 , 25-Июн-07 (2)
>Да интузиазм АЖНО прет >Че даже ни у кого ни каких идей нет? ну расставь печать пошагам в скрипте и смотри по каким веткам он идет когда из crontab запускается. существует ли в момент подъятия интерфеса предыдущий или нет.
- shell скрипт в cron'е(косяк), guest, 16:45 , 25-Июн-07 (3)
>ну расставь печать пошагам в скрипте и смотри по каким веткам он >идет когда из crontab запускается. существует ли в момент подъятия интерфеса >предыдущий или нет. Ну ты думаешь что я до этого не допер :-)
Проблема в другом. По идеи после того как kill поцесс, освобождаются все его ресурсы, так? Попробуй в системе убить процесс так сказать владелец интерфейса, и этот девайс тоже упадет, т.е. освободит место. Если ты не заметил в скрипте всего два витвления 1. Первое, при наличии ppp процесса убивает его, а следовательно и интерфейс 2. Второе выполняется в случаЕ отсутствия ppp процесса, нагло опускает интерфейс Тут все просто как три копейки, печать будет в любом случае нормальная. На последок повторюсь В ОБЫЧНОМ РЕЖИМЕ СКРИПТ ОТРАБАТЫВАЕТ КАК НУЖНО
- shell скрипт в cron'е(косяк), NuINu, 17:39 , 25-Июн-07 (4)
>>ну расставь печать пошагам в скрипте и смотри по каким веткам он >>идет когда из crontab запускается. существует ли в момент подъятия интерфеса >>предыдущий или нет. > > >Ну ты думаешь что я до этого не допер :-) > >Проблема в другом. По идеи после того как kill поцесс, освобождаются все >его ресурсы, так? >Попробуй в системе убить процесс так сказать владелец интерфейса, и этот девайс >тоже упадет, т.е. освободит место. > >Если ты не заметил в скрипте всего два витвления >1. Первое, при наличии ppp процесса убивает его, а следовательно и интерфейс > >2. Второе выполняется в случаЕ отсутствия ppp процесса, нагло опускает интерфейс >Тут все просто как три копейки, печать будет в любом случае нормальная. > > > >На последок повторюсь В ОБЫЧНОМ РЕЖИМЕ СКРИПТ ОТРАБАТЫВАЕТ КАК НУЖНО ну а если в обычном режиме работает как нужно, копай в сторону переменных окружения, элементарный PATH проверь(все в лог короче :)), у меня был случай с ЛД_Сонфиг_пас. тоже блин парился. заодно залогируй что там за пид убивается. сдается мне он в автомате не отрабатывает. - shell скрипт в cron'е(косяк), vic, 17:54 , 25-Июн-07 (5)
>Ну ты думаешь что я до этого не допер :-) Я не думаю, мне противопоказано сие действо =) > >Проблема в другом. По идеи после того как kill поцесс, освобождаются все >его ресурсы, так? >Попробуй в системе убить процесс так сказать владелец интерфейса, и этот девайс >тоже упадет, т.е. освободит место. Да я тоже иногда перечитываю матчасть, однако в моей практике был исключительный случай: kill -9 не срабатывал..> >Если ты не заметил в скрипте всего два витвления >1. Первое, при наличии ppp процесса убивает его, а следовательно и интерфейс одно скажу что -15 это не -9 15 - пока дойдет, пока отработает.. даже по -9 сниматься может дольше чем хочется. -9 это жестко) > >2. Второе выполняется в случаЕ отсутствия ppp процесса, нагло опускает интерфейс delete это не down :) шучу) >Тут все просто как три копейки, печать будет в любом случае нормальная. а нас не интересует какая БУДЕТ печать, нас интересует какая печать ПРОИСХОДИТ. Причем именно из под крона. Кстати, пользователь тот же? =) >На последок повторюсь В ОБЫЧНОМ РЕЖИМЕ СКРИПТ ОТРАБАТЫВАЕТ КАК НУЖНО крон тупо запускает скрипт и это тоже обычный режим =) разница только в отсутствии привязки к терминалу :)
с чего ему хавать 1 интерфейс, если 0 свободен? видимо не свободен.. а почему не свободен? вот в чем вопрос..
- shell скрипт в cron'е(косяк), universite, 06:34 , 26-Июн-07 (6)
>Скрипт отрабатывает как надо без проблем, но стоит его запуск поместить в >crontab начинаются косяки. whereis logger
- shell скрипт в cron'е(косяк), quest, 09:15 , 26-Июн-07 (7)
>одно скажу что -15 это не -9 >15 - пока дойдет, пока отработает.. >даже по -9 сниматься может дольше чем хочется. -9 это жестко)Да пробавал я и вместо -15 -9 Даже цикл вставлял для сто процентной уверенности while [ "`ps aux | grep -v 'grep' | grep 'ppp -auto vpn'`" ];do i=$(($i+1)); done >а нас не интересует какая БУДЕТ печать, нас интересует какая печать ПРОИСХОДИТ. Причем именно из под крона. Кстати, пользователь тот же? =) Какой пользователь? в кроне от рута запускается >ну а если в обычном режиме работает как нужно, копай в сторону переменных окружения, элементарный PATH проверь(все в лог короче :)), у меня был случай с ЛД_Сонфиг_пас. тоже блин парился. >заодно залогируй что там за пид убивается. сдается мне он в автомате не отрабатывает. Вот в окружении я мало что понимаю в смысле переменных сделал так из ручного режима записываю переменные окружения в файл и то же самое по крону(файлы разные) вот что выдает diff (приведу тольео разницу р-ручной к-крон) р-BASH_ENV=/root/.bashrc к-пусто р-BLOCKSIZE=K к-пусто р-HISTCONTROL=ignorespace к-пусто р-PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin к-PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin р-SHELL=/usr/local/bin/bash к-SHELL=/bin/sh р-SHLVL=3 к-SHLVL=1 р-TERM=xterm к-TERM=dump Все остольное одинаково Долго мучился и спечатью и так в итоге вот что PID="$(echo 'printf("%d",(split/\s{1,}/,`ps aux | grep -v "grep" | grep "ppp -auto vpn"`)[1])' | perl)" в PID всегда NULL пробовал так PS=`ps aux | grep -v 'grep' | grep 'ppp -auto vpn'` PID=`echo $PPPPS | cut -d ' ' -f2` в PID опять NULL Че за хрень понять не могу. Есть соображения
- shell скрипт в cron'е(косяк), NuINu, 10:04 , 26-Июн-07 (8)
>Долго мучился и спечатью и так в итоге вот что >PID="$(echo 'printf("%d",(split/\s{1,}/,`ps aux | grep -v "grep" | grep "ppp -auto vpn"`)[1])' >| perl)" > >в PID всегда NULL > >пробовал так > >PS=`ps aux | grep -v 'grep' | grep 'ppp -auto vpn'` >PID=`echo $PPPPS | cut -d ' ' -f2` > >в PID опять NULL > >Че за хрень понять не могу. >Есть соображения есть, отлаживать надо лучше :) уж больно сложное(для меня) у тебя выражение получается вот у меня работает(если находиться только один подобный процесс): name=gnome-pty-helper aga=`ps aux | grep -v "grep" | grep "$name"` pid=`echo "printf(\"%d\",(split/\s{1,}/,\"$aga\")[1]);" | perl` echo Pid is $pid name свое подставь.
- shell скрипт в cron'е(косяк), quest, 11:23 , 26-Июн-07 (9)
>есть, отлаживать надо лучше :) >уж больно сложное(для меня) у тебя выражение получается вот у меня работает(если >находиться только один подобный процесс): > >name=gnome-pty-helper >aga=`ps aux | grep -v "grep" | grep "$name"` >pid=`echo "printf(\"%d\",(split/\s{1,}/,\"$aga\")[1]);" | perl` >echo Pid is $pid > >name свое подставь. Неа нифига не работает А ты запускал по крону?
- shell скрипт в cron'е(косяк), NuINu, 11:50 , 26-Июн-07 (10)
>>есть, отлаживать надо лучше :) >>уж больно сложное(для меня) у тебя выражение получается вот у меня работает(если >>находиться только один подобный процесс): >> >>name=gnome-pty-helper >>aga=`ps aux | grep -v "grep" | grep "$name"` >>pid=`echo "printf(\"%d\",(split/\s{1,}/,\"$aga\")[1]);" | perl` >>echo Pid is $pid >> >>name свое подставь. > > >Неа нифига не работает >А ты запускал по крону? вот, работает.0,10,20,30,40,50 * * * * /bin/sh -c /home/?????/work/sh/test/get_pid.sh >>/home/????/work/sh/test/get_pid.log 2>&1
- shell скрипт в cron'е(косяк), quest, 12:40 , 26-Июн-07 (11)
Ну что господа хорошие большое спасибо за помощ и советы Проблему решил заменой PS на FSTAT PS отрабатывала както корява(накладывала строки на другие) вообщем на выходе не удавалось найти конкретную строку поиска Что самое не понятное так это то что на линухе первоначальный скрипт (естественно с другим синтаксисом ifconfig) отрабатывает на УРА, а во фряхе вот такой геморой.Если каму нужно вот рабочий vpnstat ########################################################################### #!/bin/sh STATE=`ping -c 3 192.168.0.1 > /dev/null 2>&1 && echo UP || echo DOWN` case "$STATE" in DOWN) logger -t $0 -i 'SSH tunnel in state DOWN' logger -t $0 -i 'vpnstat try change state to UP' PID=`fstat | grep tun0 | xargs | cut -d ' ' -f3` if [ "$PID" -gt 0 ]; then /bin/kill -9 ${PID} >/dev/null 2>&1; /sbin/ifconfig tun0 down > /dev/null 2>&1 /sbin/ifconfig tun0 delete > /dev/null 2>&1 else /sbin/ifconfig tun0 down > /dev/null 2>&1 /sbin/ifconfig tun0 delete > /dev/null 2>&1 fi while [ "`ps aux | grep -v 'grep' | grep 'ppp -auto vpn'`" ];do i=$(($i+1)); done
/usr/sbin/ppp -auto vpn >/dev/null 2>&1; logger -t $0 -i 'SSH tunnel in state UP' ;; *) ;; esac exit 0 ###########################################################################
|