[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Не выполняется команда внутри bash скрипта



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


Reply to: