MySQL Sometimes принимается, чтобы только принять поступление на петлевом адресе (127.0.0.1). PHPMyAdmin, скорее всего, пытается соединиться с "localhost".
Можно изменить my.cnf файл, чтобы позволить все соединения с сервером MySQL или изменить конфигурацию PHPMyAdmin для указания на 127.0.0.1. Мое предложение состояло бы в том, чтобы сделать позже в случае будущих обновлений.
Перенаправление из crontab должно работать, но другой подход вы можете попробовать использовать exec в скрипте для перенаправления всего вывода. Используйте это так в начале скрипта:
exec 1>> /var/log/ftp-getter.log 2>&1
Теперь вам не нужно явно перенаправлять вывод отдельных команд в скрипте.
lftp
может использовать файловые дескрипторы, отличные от STDOUT и STDERR. Проверьте, выполнив команду в strace
strace lftp ...
и найдите строки, начинающиеся с "write":
write(3, ...
Число - это дескриптор, в который программа записывает. Перенаправьте и этот дескриптор.
... >> /var/log/ftp-getter.log 2>&1 3>&1
Распространенной причиной того, что что-то не работает в cron, но работает в сеансе оболочки, является различие в среде.
Сравните вывод env
при запуске из cron и оболочки. Напомним, что оболочка, запускаемая из cron, не является интерактивной, что может привести к различиям в том, как ваши сценарии инициализации подготавливают вашу среду.
Это работает для меня
*/5 * * * * screen -dmS ftp-getter /bin/bash /home/user/ftp-getter.sh >> /var/log/ftp-getter.log 2>&1