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, а затем скопировать файл, так что, возможно, существует альтернативный путь к успеху, но я озадачен происходящим и предпочел бы понять.;)

1 ответ

Это оказывается ошибкой в ​​OpenSSH для Windows, о которой я в конце концов нашел сообщение в блоге, которое, в свою очередь, связано с отчетом об ошибке.

Есть обходной путь, но он также исправлен, поэтому, если мы обновим OpenSSH в Windows, он должен пойти своим путем.

Другие вопросы по тегам