[英]Bash script for interactive ssh and mysql commands
我正在学习MySQL,每次都必须
ssh XXX@XXX
命令,然后输入我的学校服务器密码。 mysql -u XXX -p
命令,然后输入MySQL密码。 我想创建一个Bash脚本来自动执行上述步骤。
我可以使用以下代码完成第一步:
#!/usr/bin/expect -f
set address xxx.com
set password xxx
set timeout 10
spawn ssh xxx@$address
expect { "*yes/no" { send "yes\r"; exp_continue} "*password:" { send "$password\r" } }
send clear\r
interact
但是我不知道如何自动输入下一个命令( mysql -u xxx -p
)和密码。
我怎样才能做到这一点?
您不需要这么复杂的脚本就可以在远程计算机上进入MySQL控制台。 使用ssh
工具的功能:
ssh -tt user@host -- mysql -uuser -ppassword
-t
选项强制伪终端分配。 即使ssh
没有本地tty,也要使用-t
强制tty分配(请参阅man ssh
)。 注意-p
选项的使用。 -p
和密码之间不能有空格(请参见mysql
的手册)。
如果可以从本地计算机访问MySQL主机,甚至可以直接通过mysql
连接:
mysql -hhost -uuser -p
别忘了调整shebang :
#!/bin/bash -
使用my.cnf像ssh密钥一样安全地存储您的密码。
https://easyengine.io/tutorials/mysql/mycnf-preference/
通过ssh -i参数并传递远程主机的私钥路径,也可以使用ssh的相同方法。
祝你好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.