Oleg Anisimov (Олег Анисимов) wrote: > ivan demakov пишет: >> On Thursday 02 April 2009 19:22:42 Олег Анисимов wrote: >>> Доброго всем LOCAL_TIME! >>> >>> Голову сломал уже. Помогите разобраться в ситуации. >>> Есть скрипт, который надо выполнять из cron. Если >>> упрощенно, выглядит так: >>> >>> #!/bin/bash >>> >>> HOST=stat >>> >>> info=`exec ssh root@$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 2>&1 > /dev/null > > Вроде как рутом должен запускаться. У меня было смутное подозрение > насчет ключей ssh, но как в этом достоверно убедиться и главное > исправить :? > А в консоли ты его из-под рута запускал при проверке? -- Eugene V. Lyubimkin aka JackYF, JID: jackyf.devel(maildog)gmail.com C++/Perl developer, Debian Maintainer
Attachment:
signature.asc
Description: OpenPGP digital signature