Я ищу резервную автоматизацию удаленной базы данных. Затем я наткнулся на язык сценариев, который обычно используется для административных задач «Ожидайте скриптов», и я считаю, что это может хорошо служить моей цели.Expect scripting: удаленная автоматизация резервного копирования базы данных
Что бы я хотел сделать, так это то, что я хочу выполнить вход на удаленный сервер, используя следующий сценарий bash из моего локального окна Linux. (предполагается, что все установлено правильно, SSH-аутентификация через сгенерированную пару ключей, поэтому пароль не требуется) Для наиболее важной части я хотел бы отправить команду mysqldump для выполнения резервного копирования для моей базы данных на этом сервере.
#!/usr/bin/expect
set login "root"
set addr "192.168.1.1"
spawn ssh [email protected]$addr
expect "#"
send "cd /tmp\r"
expect "#"
send "mysqldump -u root -ppassword my_database > my_database.sql\r"
expect "#"
send "exit\r"
Единственная проблема, которую я нашел здесь, после отправки строки «mysqldump -u root .......». Он никогда не дожидался завершения процесса, но сразу же покинул оболочку с командной строкой «отправить» exit \ r "'.
что делать, чтобы команда дождалась завершения команды mysqldump и выйти из SSH правильно?