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

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1331
Зарегистрирован: 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:
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

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

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

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

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


Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1331
Зарегистрирован: 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
стреляли...
Сообщения: 35454
Зарегистрирован: 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
ст. лейтенант
Сообщения: 1331
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

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

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

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


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

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

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

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