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

2009-04-02 Пенетрантность 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 шелом.

-- 
Hе шутите с кармой! Падшие медитаторы рождаются комарами.


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

2009-04-02 Пенетрантность Mikhail A Antonov
-[ 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 скрипта

2009-04-02 Пенетрантность Artem Chuprina
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