繁体   English   中英

交互式ssh和mysql命令的Bash脚本

[英]Bash script for interactive ssh and mysql commands

我正在学习MySQL,每次都必须

  1. 输入ssh XXX@XXX命令,然后输入我的学校服务器密码。
  2. 输入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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM