Проблема с запуском скрипта из cron

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Rus
рядовой
Сообщения: 16
Зарегистрирован: 2014-12-15 12:17:30

Проблема с запуском скрипта из cron

Непрочитанное сообщение Rus » 2014-12-19 9:45:38

В общем такая проблема, имеется скрипт /root/lftp.sh:

Код: Выделить всё

#!/bin/sh
/usr/local/bin/lftp -e 'mirror -c -R /data/file/ /webspace/httpdocs/file/; exit' -u login:pass ftp://myftp.ru >> /root/lftp.log
в логе крона пишет

Код: Выделить всё

Dec 19 12:35:34 WebServer /usr/sbin/cron[4143]: (root) CMD (/root/lftp.sh)
Dec 19 12:36:34 WebServer /usr/sbin/cron[4147]: (root) CMD (/root/lftp.sh)
Dec 19 12:37:34 WebServer /usr/sbin/cron[4151]: (root) CMD (/root/lftp.sh)
Dec 19 12:38:34 WebServer /usr/sbin/cron[4155]: (root) CMD (/root/lftp.sh)
вроде как согласно логам все запускается, но в /root/lftp.log нет данных что скрипт выполнялся и на серваке нет файлов
при запуске в ручную т.е. ./lftp.sh все идеально работает в логе есть данные и файлы на сервер скидываются.
разрешение на запуск скрипта сделал

Код: Выделить всё

-rwxr-xr-x  1 root  wheel    189 Dec 19 12:20 lftp.sh
Подскажите где копать, я уже гуглить запарился все сделал как пишут а результата 0

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

guest
проходил мимо

Re: Проблема с запуском скрипта из cron

Непрочитанное сообщение guest » 2014-12-19 11:46:51

Rus писал(а):В общем такая проблема, имеется скрипт /root/lftp.sh:

Код: Выделить всё

#!/bin/sh
/usr/local/bin/lftp -e 'mirror -c -R /data/file/ /webspace/httpdocs/file/; exit' -u login:pass ftp://myftp.ru >> /root/lftp.log
неудачное логгирование, а если ошибки?

Код: Выделить всё

/usr/local/bin/lftp -e "mirror -c -R /data/file/ /webspace/httpdocs/file/; bye" -u login:pass ftp://myftp.ru/ >/root/lftp.log 2>&1
stdout будет писать в /root/lftp.log и stderr 2>&1 туда же.
в логе крона пишет

Код: Выделить всё

Dec 19 12:35:34 WebServer /usr/sbin/cron[4143]: (root) CMD (/root/lftp.sh)
Dec 19 12:36:34 WebServer /usr/sbin/cron[4147]: (root) CMD (/root/lftp.sh)
Dec 19 12:37:34 WebServer /usr/sbin/cron[4151]: (root) CMD (/root/lftp.sh)
Dec 19 12:38:34 WebServer /usr/sbin/cron[4155]: (root) CMD (/root/lftp.sh)
вроде как согласно логам все запускается, но в /root/lftp.log нет данных что скрипт выполнялся и на серваке нет файлов
при запуске в ручную т.е. ./lftp.sh все идеально работает в логе есть данные и файлы на сервер скидываются.
разрешение на запуск скрипта сделал

Код: Выделить всё

-rwxr-xr-x  1 root  wheel    189 Dec 19 12:20 lftp.sh
Подскажите где копать, я уже гуглить запарился все сделал как пишут а результата 0
выводить лог в /root/lftp.log - в принципе неудачная идея, вдруг "/" - маленькая отдельная FS?
лучше куда-нибудь в /var/log/lftp.log или временно в /tmp или /var/tmp

Вот кусок из скрипта:

Код: Выделить всё

#!/bin/sh

DATE=`/bin/date "+%H:%M:%S/%d.%m.%y"`
MIRROR=/usr/local/bin/lftp
LOGDIR=/var/log/mirror
LOCDIR=/var/spool/lock
NAME="security-patches"

RUNNING=`/bin/ps auxwww | /usr/bin/grep "$MIRROR" | /usr/bin/grep -v grep`

if test -z "$RUNNING" ; then
   /bin/rm -f $LOGDIR/$NAME.log
   /bin/rm -f $LOCDIR/$NAME.lock

   /bin/echo | /usr/bin/mail -s "$NAME started at: $DATE" root

   $MIRROR -e "mirror --delete --only-newer --only-missing --verbose patches /pub/BSD/patches ; bye;" http://security.freebsd.org/ >$LOGDIR/$NAME.log 2>&1
...
далее идет ротирование логов...

Rus
рядовой
Сообщения: 16
Зарегистрирован: 2014-12-15 12:17:30

Re: Проблема с запуском скрипта из cron

Непрочитанное сообщение Rus » 2014-12-19 12:24:58

Спасибо дружище, сейчас все отлично работает...

guest
проходил мимо

Re: Проблема с запуском скрипта из cron

Непрочитанное сообщение guest » 2014-12-19 13:10:14

Rus писал(а):Спасибо дружище, сейчас все отлично работает...
только помнить что конструкция:

Код: Выделить всё

# command >/root/lftp.log 2>&1
всегда создает НОВЫЙ лог файл, либо настроить ротацию через newsyslog,
либо самостоятельно, либо постоянно растущий лог:

Код: Выделить всё

# command  >>/root/lftp.log 2>&1
и ротацию через newsyslog (помнить про время запуска в cron и время ротации в newsyslog)