Re: Не выполняется команда внутри bash скрипта
On Thursday 02 April 2009 19:22:42 Олег Анисимов wrote: Доброго всем LOCAL_TIME! Голову сломал уже. Помогите разобраться в ситуации. Есть скрипт, который надо выполнять из cron. Если упрощенно, выглядит так: #!/bin/bash HOST=stat info=`exec ssh r...@$host uptime` UP=`echo $info | cut -d -f 3` la=$( echo scale=0; `echo $info | cut -d -f 11 | tr ',' ' '`*100 | bc -l | tr '.' ',') LA=`printf %.0f $la` echo $UP $LA Беда в том, что если скрипт запускается из cron - получаются пустые переменные. Если запустить скрипт в консоли - печатаются реальные цифры. Если до кучи выводить в файл значения переменных, то становится ясно, что $info, в случае запуска по крону оказывается пустой. В чем подвох? возможно крон запускает скрипт от другого пользователя. и следовательно, ssh не находит ~/.ssh а если поьзователь тот, то смотри разницу между login и не-login шелом. -- Hе шутите с кармой! Падшие медитаторы рождаются комарами.
Re: Не выполняется команда внутри bash скрипта
-[ Oleg Anisimov (Олег Анисимов) 02/04/2009 16:45 (GMT +3) ivan demakov пишет: On Thursday 02 April 2009 19:22:42 Олег Анисимов wrote: Доброго всем LOCAL_TIME! Голову сломал уже. Помогите разобраться в ситуации. Есть скрипт, который надо выполнять из cron. Если упрощенно, выглядит так: #!/bin/bash HOST=stat info=`exec ssh r...@$host uptime` UP=`echo $info | cut -d -f 3` la=$( echo scale=0; `echo $info | cut -d -f 11 | tr ',' ' '`*100 | bc -l | tr '.' ',') LA=`printf %.0f $la` echo $UP $LA Беда в том, что если скрипт запускается из cron - получаются пустые переменные. Если запустить скрипт в консоли - печатаются реальные цифры. Если до кучи выводить в файл значения переменных, то становится ясно, что $info, в случае запуска по крону оказывается пустой. В чем подвох? возможно крон запускает скрипт от другого пользователя. и следовательно, ssh не находит ~/.ssh а если поьзователь тот, то смотри разницу между login и не-login шелом. Строчка в /etc/cron.d/myscripts : */5 * * * * root /opt/rrd/stat/update.sh 21 /dev/null А ты убери 21 /dev/null и посмотри что тебе на почту свалится -- Best regards, Mikhail xmpp: ant...@stopicq.ru irc: Bart-mdv- @ SolarNet SolarNet: http://www.solarnet.ru/ signature.asc Description: This is a digitally signed message part.
Re: Не выполняется команда внутри bash скрипта
Oleg Anisimov (Олег Анисимов) - debian-russian@lists.debian.org @ Thu, 02 Apr 2009 16:45:18 +0400: OAА Строчка в /etc/cron.d/myscripts : OAА */5 * * * * root /opt/rrd/stat/update.sh 21 /dev/null OAА Вроде как рутом должен запускаться. У меня было смутное подозрение OAА насчет ключей ssh, но как в этом достоверно убедиться и главное OAА исправить :? Как убедиться: ssh -v и не засовывать stderr в /dev/null. Тогда он руту в почту все расскажет. Может быть, даже без -v расскажет достаточно. Ну а исправить - в зависимости от того, какая ошибка была допущена... -- Artem Chuprina RFC2822: ran{}ran.pp.ru Jabber: r...@jabber.ran.pp.ru Чушь для ресниц (С)энта -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org