По разному работает bash через ssh и по крону

12
Mik Foxi
На сайте с 02.03.2011
Offline
1176
1765

Есть простой bash скрипт бекапа: заархивировали, залили на удаленный фтп, послали письмо.

Архив бекапа около 500 мб

Так вот если напрямую запускать скрипт из ssh - отрабатывает всегда стабильно, все заливает, письмо приходит.

Если запускать по крону от имени root: /usr/bin/backup.sh > /dev/null 2>&1

то в 2/3 случаев архив до конца не заливается, и писем никогда не приходит.

В чем различается запуск скрипта напрямую и по крону? Ось Дебиан 6

Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ Форум на замену серчу: https://foxi.biz/
M
На сайте с 01.12.2009
Offline
235
#1

может в заданиях cron надо указать PATH=

Администратор Linux,Freebsd. построения крупных проектов.
Mik Foxi
На сайте с 02.03.2011
Offline
1176
#2

madoff, так в общем скрипт работает, и во всем пути правильные...

M
На сайте с 01.12.2009
Offline
235
#3
foxi:
madoff, так в общем скрипт работает, и во всем пути правильные...

угу сори. если у вас впс, может хостер прибивать скрипт. из за тогоч то он долго весить активным :) на openvz так делают некоторые.

Mik Foxi
На сайте с 02.03.2011
Offline
1176
#4

VDS KVM, хостер точно не прибивает ничего, да и отрабатывает скрипт за минуты 3...

И при прямом запуске всегда отрабатывает на отлично, а на кроне скорее не отработает, чем отработает... Не думал что может быть разница от способов запуска...

M
На сайте с 01.12.2009
Offline
235
#5

cron, либо работает, либо не работает.

Выполнения должны быть полными от root.

Mik Foxi
На сайте с 02.03.2011
Offline
1176
#6
madoff:
cron, либо работает, либо не работает.
Выполнения должны быть полными от root.

Запускается от рута.

Но почему при запуске от крона не докачивается до конца файл на фтп?

Тестил, 20 раз запустил через крон, 18 раз закачалось недокачанным. При прямом запуске - 20 раз из 20 закачалось успешно...

M
На сайте с 01.12.2009
Offline
235
#7

ну сделай типа echo в файл и проверь.

Raistlin
На сайте с 01.02.2010
Offline
247
#8

Если недокачанным - вопрос, чем качаете. Будто софтинка прибивается, т.к. нет родительского процесса. Под кроном баш запускается для выполнения команды и прибивается после её выполнения. Добавьте в конец скрипта echo - должно помочь от этого (подозреваюю, что баш прибивается после выполнения последней команды, а т.к. для софтинки выглядит будто юзер вышел, который её запустил - она и умирает).

HostAce - Асы в своем деле (http://hostace.ru)
Mik Foxi
На сайте с 02.03.2011
Offline
1176
#9
Raistlin:
Если недокачанным - вопрос, чем качаете. Будто софтинка прибивается, т.к. нет родительского процесса. Под кроном баш запускается для выполнения команды и прибивается после её выполнения. Добавьте в конец скрипта echo - должно помочь от этого (подозреваюю, что баш прибивается после выполнения последней команды, а т.к. для софтинки выглядит будто юзер вышел, который её запустил - она и умирает).

код собственно заливки:

ftp -in <<EOF

open $FTPSERV
user $FTPUSER $FTPPASS
cd $FTPDIR
bin
put www-$NOW.tar
close
bye
EOF

А сам скрипт выполняется до конца, т.к. действия идущие после заливки выполняются нормально...

M
На сайте с 16.09.2009
Offline
278
#10
foxi:
Если запускать по крону от имени root: /usr/bin/backup.sh > /dev/null 2>&1
то в 2/3 случаев архив до конца не заливается, и писем никогда не приходит.

Извините, а что должно руту приходить? Пустой выхлоп, оставшийся после того как вы все в /dev/null отправили?

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий