чойта я не догоню куда переменная деётся из под cron-а

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1280
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение dekloper » 2015-03-11 15:40:12

есть такой трабл, который обычно, как правило, правится указанием полного путя..

Код: Выделить всё

pid=`/usr/bin/ssh -q -t root@srv "/bin/ps -U vbox | /usr/bin/grep 2k3" | /usr/bin/awk '{print $1}'`
/bin/echo vmpid $pid >> /root/vmpid.log

и всё же, если запускать кроном, то переменная пустая, если из консоли руками пустить - то всё как надо..
плз, подскажите как пофиксить :bn:
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Аватара пользователя
f_andrey
майор
Сообщения: 2633
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение f_andrey » 2015-03-11 15:44:29

Руками то поди csh, а то и bash какой нибудь, а шел sh? (как рабочая идея)
Если ваша тема перенесена, то смотри viewtopic.php?f=1&t=32308


Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1280
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение dekloper » 2015-03-11 16:05:59

f_andrey писал(а):Источник цитаты Руками то поди csh, а то и bash какой нибудь, а шел sh? (как рабочая идея)

не, баша нету никакого - csh
чистым sh, тоже - руками все гут..
ну и первая строчка то не для красоты же:

Код: Выделить всё

#!/bin/sh -

Neus писал(а):Источник цитаты /bin/ps -Uww vbox

а зачем оно мне, там и так как надо фильтруется всё..
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 34924
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение Alex Keda » 2015-03-15 21:49:28

Код: Выделить всё

s01# crontab -l -u toor
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

# added by lissyara
@hourly                                 /root/scripts/work/start.all.run.every.hour.sh
@daily                                  /root/scripts/work/start.all.run.every.day.sh
*/2     *       *       *       *       /root/scripts/work/start.all.run.every.2.minutes.sh
Убей их всех! Бог потом рассортирует...

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1280
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение dekloper » 2015-03-15 22:48:15

непонял..? дык у меня те строчки так же из скрипта в кронтабе запускаются, а в лог тока эхо без пида валится..
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Аватара пользователя
FenX
ст. прапорщик
Сообщения: 513
Зарегистрирован: 2008-04-23 17:46:53
Откуда: Moscow
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение FenX » 2015-03-31 11:42:27

Код: Выделить всё

/bin/echo "vmpid $pid"
попробуй так

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1280
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение dekloper » 2015-03-31 14:04:36

FenX, ну, вобщем - да, в ковычках из крона заработало:

Код: Выделить всё

#!/bin/sh -

pid=`ssh -q -t root@srv "ps -wwU vbox | grep bsd64" | awk '{print $1}'`
/bin/echo "vmpid $pid" >> ~/scripts_tst/pid.log


а если ту же строчку добавить в скрипт с условием, то не хотит, по-прежнему..

Код: Выделить всё

#!/bin/sh -

#pid=`ssh -q -t root@srv "ps -U vbox | grep bsd64" | awk '{print $1}'`
pid=`/usr/bin/ssh -q -t root@srv "/bin/ps -U vbox | /usr/bin/grep bsd64" | /usr/bin/awk '{print $1}'`

 FLAG=0
/sbin/ping -qc 1 192.168.2.95 > /dev/null 2>&1 || FLAG=1

 if test ${FLAG} -eq 1 ; then
/bin/echo "vmpid $pid" >> ~/scripts/pid.log
/usr/bin/ssh root@srv "kill -9 ${pid}"
/bin/sleep 1
/usr/bin/ssh -n root@srv "/usr/bin/su -m vbox -c '/usr/local/bin/VBoxManage startvm bsd64 --type headless'" > /dev/null 2>&1
/bin/echo "vmpid $pid" | mail -s "Link error VM" odmin@odmin.ru
 else
/bin/echo "vmpid $pid" >> ~/scripts/pid.log
 fi

в чом разница то..?
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Аватара пользователя
FenX
ст. прапорщик
Сообщения: 513
Зарегистрирован: 2008-04-23 17:46:53
Откуда: Moscow
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение FenX » 2015-03-31 14:16:38

тупанул маленько, вопрос: у тебя только на эхе затупы?
все остальное внутри ифа отрабатывает?

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1280
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение dekloper » 2015-03-31 14:45:19

остальное (kill) тоже неработает, ибо отсутствует предмет для убивания..
проверил мысль про разбивание строки: тот же результат..

Код: Выделить всё

#pid=`ssh -q -t root@vira "ps -U vbox | grep bsd64" | awk '{print $1}'`
#pid=`/usr/bin/ssh -q -t root@vira "/bin/ps -U vbox | /usr/bin/grep bsd64" | /usr/bin/awk '{print $1}'`
_bsd64=`/usr/bin/ssh -q -t root@vira "/bin/ps -U vbox | /usr/bin/grep bsd64"`
pid=`echo "${_bsd64}" | /usr/bin/awk '{print $1}'`


Отправлено спустя 2 минуты 55 секунд:
эхо - просто понять че происходит..
я думаю, if как то не так из-под крона отрабатывает..
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Аватара пользователя
FenX
ст. прапорщик
Сообщения: 513
Зарегистрирован: 2008-04-23 17:46:53
Откуда: Moscow
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение FenX » 2015-03-31 16:49:36

воткни перед ифом

Код: Выделить всё

/bin/echo "FLAG: ${FLAG}" >> ~/test.log


ну и так, мелочные правки, на будущее:

Код: Выделить всё

$ crontab -l
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/etc
HOME=/root

#min   hour   mday   month   wday   command
10   00   *   *   *   /usr/local/etc/host.d/zfs-snapshots.sh
01   01   *   *   *   /usr/sbin/portsnap fetch update


это поможет избавиться в будущем от необходимости в скриптах указывать полный путь до бинарника :)

ну и возвращаясь к нашим баранам:
если флаг таки присваивается верно, то попробуй само условие в ифе поменять:

Код: Выделить всё

if [ ${FLAG} -eq 1 ];then
    ...
fi

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1280
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение dekloper » 2015-04-01 8:49:07

FenX, с флагом все хорошо
воткнул эхо перед ифом, в ветке лживой, и в ветке истинной..
скобку тоже добавил..
результат в различных состояниях машины:

Код: Выделить всё

root@titan:~/scripts # cat pid.log
FLAG: 1
FLAG true: 1
vmpid
FLAG: 0
FLAG false: 0
vmpid

:(
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Аватара пользователя
FenX
ст. прапорщик
Сообщения: 513
Зарегистрирован: 2008-04-23 17:46:53
Откуда: Moscow
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение FenX » 2015-04-01 10:58:19

опять же:

Код: Выделить всё

pid=`ssh -q -t root@srv "ps -U vbox | grep bsd64" | awk '{print $1}'`

echo "PID: ${FLAG}" >> ~/test.log

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1280
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

чойта я не догоню куда переменная деётся из под cron-а

Непрочитанное сообщение dekloper » 2015-04-01 13:10:07

FenX, спасибо
короче, заработал костыль :)
вся беда была в.. волшебном баше, которому как оказалось, пофиг на всякие закрывающие скобки..
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!


Вернуться в «SHELL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя