SSH + MysqlDump удаленный резервный сценарий

SAM-QFS является существующим продуктом Sun и был открыто получен в прошлом году. Это - CDDL, таким образом, Вы могли только непосредственно портировать его на *BSD.

2
задан 27 May 2010 в 23:20
3 ответа

Когда Вы соединяетесь с другим хостом, SSH выполняет данную команду на стороне сервера (если нет ни одного данного, это запускает оболочку), передавая все stdin/stdout/stderr потоки. ssh управляйте концами в >. Это означает, что вывод команды mysql перенаправляется в файл dbdump.dmp на стороне клиента. Затем все еще на стороне клиента, архив tar создается из того файла.

При помещении целой командной строки в кавычки как предложенный Dom это будет выполнено полностью на удаленной стороне, тот способ, которым у Вас будут файлы на Вашем сервере.

В теории вещь пароля должна работать, также (так как stdin поток не перенаправляется, но просто передается), но это не сделало здесь.

Можно вставить пароль .my.cnf (если Вы хотите дополнительную безопасность, создаете дополнительного пользователя только для резервного копирования). Можно также использовать вход в систему с открытым ключом для той учетной записи, тот способ, которым это будет работать полностью без взаимодействия.

BTW: Почему Вы создаете архив tar дампа? Если Вам только нужно сжатие, gzip или что-то как этот совершенно достаточно.

2
ответ дан 3 December 2019 в 11:12

На котором компьютере Вы хотите tar, который будет выполняться? если это находится на сервере, необходимо заключить всю строку в кавычки как: ssh user@host.com "mysqldump $dbname -u admin -p > dbdump.dmp && tar cvzf dbdump.tar.gz dbdump.dmp" Если Вы не делаете, я думаю, что конец строки будет выполняться локально и не будет работать, поскольку у Вас нет dbdump файла Для 1), нет никакой проблемы. Если пароль будет необходим, то его спросят. [РЕДАКТИРОВАНИЕ] OOPS, я проверяю дважды, Вы говорите о пароле MySQL и не SSH! Я думаю однако, что это спросят [EDIT2], Просто проверяют, и это работает с кавычками: сначала пароль SSH, спрашивают, и после, пароль MySQL

1
ответ дан 3 December 2019 в 11:12

У меня это сработало (после нескольких тестов):

ssh -t kom "mysql -uroot -p -e 'show databases;'"
ssh -t kom "mysql -uroot -p < /home/ling/websites/jin_test/.deploy/tmp.sql"

«Уловка» заключалась в кавычках вокруг команды.

Параметр -t позволяет выводить подсказки пароль в интерактивном режиме через удаленную оболочку.

kom здесь просто идентификатор конфигурации ssh, определенный в моем файле ~ / .ssh / config (подробнее см. здесь: https : //www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/ ).

0
ответ дан 3 December 2019 в 11:12

Теги

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