mysql - Tcl Expect 保持 SSH Spawn 打开

标签 mysql ssh tcl expect spawn

我想打开一个生成 SSH 连接,然后在 MySQL 服务器上查询新用户(循环),如果找到新用户,则应通过 Expect 将命令发送到此 SSH 连接。

我不知道这是否可能,到目前为止,当我在 MySQL 查询后尝试“发送”命令时,我总是杀死 ssh.exe。

我希望 SSH 打开,因为使用 Expect 登录需要 10 秒(主机很慢),而且我不希望每次创建用户时都暂停。

我该怎么做?

我在做什么:

...
set db [::mysql::connect -host 127.0.0.1 -user root -password **** -db test]
spawn ssh admin@192.168.1.2
expect {
     timeout { send_user "\nFalscher SSH User admin!\n"; exit 1 }
     "User:"
}
send "admin\r"
expect {
     timeout { send_user "\nFalscher SSH User admin!\n"; exit 1 }
     "Password:"

}
send "******\r"

set x = 1
while {$x>0} {
set query [::mysql::query $db {SELECT username, passwort FROM users WHERE erstellt='0'}]
while {[set row [::mysql::fetch $query]]!=""} {
     set username [lindex $row 0]
     set passwort [lindex $row 1]
     send "create user...;\r"
}
::mysql::endquery $query
after 2000
}

最佳答案

我通过将预期输出保存到文件中解决了这个问题。 在后台启动后,ssh 想要验证我的 ssl 指纹。 接受后,效果很好。

关于mysql - Tcl Expect 保持 SSH Spawn 打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27599806/

相关文章:

linux - 使用 Chef 创建用户,以便我可以 ssh 进入盒子

linux - 仅使用 ssh/scp 的文件同步

linux - 将参数传递给模块文件中的 set-alias

tcl - 关于 tcl 中的命名管道行为

php - 重写产品名称的网址

mysql - 你如何用MySQL模拟内存不足?

mysql - 错误的 MySQL 更新查询后恢复?

python - 使用 Python mysql.connector 远程连接 MySQL

tcl - 在Windows中获取没有文件名的路径

mysql - SQL - 创建一个返回表行的函数