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

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



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, но как в этом достоверно убедиться и главное
исправить :?

--
--
С наилучшими пожеланиями,
Олег Анисимов AKA Yoda


Reply to: