сценарий оболочки в crontab, не весь зарегистрированный вывод

MySQL Sometimes принимается, чтобы только принять поступление на петлевом адресе (127.0.0.1). PHPMyAdmin, скорее всего, пытается соединиться с "localhost".

Можно изменить my.cnf файл, чтобы позволить все соединения с сервером MySQL или изменить конфигурацию PHPMyAdmin для указания на 127.0.0.1. Мое предложение состояло бы в том, чтобы сделать позже в случае будущих обновлений.

1
задан 25 February 2013 в 12:11
4 ответа

Перенаправление из crontab должно работать, но другой подход вы можете попробовать использовать exec в скрипте для перенаправления всего вывода. Используйте это так в начале скрипта:

exec 1>> /var/log/ftp-getter.log 2>&1

Теперь вам не нужно явно перенаправлять вывод отдельных команд в скрипте.

1
ответ дан 3 December 2019 в 21:36

lftp может использовать файловые дескрипторы, отличные от STDOUT и STDERR. Проверьте, выполнив команду в strace

strace lftp ...

и найдите строки, начинающиеся с "write":

write(3, ...

Число - это дескриптор, в который программа записывает. Перенаправьте и этот дескриптор.

... >> /var/log/ftp-getter.log 2>&1 3>&1
1
ответ дан 3 December 2019 в 21:36

Распространенной причиной того, что что-то не работает в cron, но работает в сеансе оболочки, является различие в среде.

Сравните вывод env при запуске из cron и оболочки. Напомним, что оболочка, запускаемая из cron, не является интерактивной, что может привести к различиям в том, как ваши сценарии инициализации подготавливают вашу среду.

0
ответ дан 3 December 2019 в 21:36

Это работает для меня

*/5 * * * * screen -dmS ftp-getter /bin/bash /home/user/ftp-getter.sh >> /var/log/ftp-getter.log 2>&1
0
ответ дан 3 December 2019 в 21:36

Теги

Похожие вопросы