Mysqldump over SSH молча завершается с помощью crontab
Коллега пытается выполнить резервное копирование базы данных mysql на машине Windows с машины linux по расписанию. Машины linux и windows используют разные версии mysql, поэтому мы не можем запустить mysqldump на машине linux и подключить ее к машине Windows, поэтому вместо этого он запускает mysqldump на машине windows через SSH и передает вывод в файл, Он написал сценарий, протестировал его, затем запланировал его с помощью cron (без тестирования) и, конечно же, он потерпел неудачу - при запуске через cron SSH-файл mysqldump не выдает никаких данных, поэтому файл резервной копии составляет 0 байт. Тот же сценарий, запускаемый без cron, создает резервную копию mysql.
Вот когда я вмешался.
Я возился с этим несколькими разными способами. Я отправил env на диск, добавил многословие SSH, задавался вопросом, имеет ли это какое-либо отношение к TTY, поэтому попробовал с -t
, -tt
а также -T
, но я до сих пор понятия не имею, почему это не удается. Я могу видеть, добавив -v
к SSH, что соединение установлено, аутентификация успешна, команда отправляется. Единственная реальная разница в том, что когда я планирую скрипт через cron, вывод mysqldump отсутствует.
Я могу опубликовать обработанные выходные данные журналов отладки SSH, если кто-то думает, что они помогут. Может получить версии для Windows, CentOS и MySQL, если они актуальны. Рад попробовать предложения.
В конечном счете, мы, вероятно, можем вместо этого перенаправить вывод mysqldump на диск Windows, а затем скопировать файл, так что, возможно, существует альтернативный путь к успеху, но я озадачен происходящим и предпочел бы понять.;)