0
我想打開一個產卵SSH連接,然後查詢MySQL服務器的新用戶(在一個循環中),如果發現一個新的用戶應該發送一個命令通過期望這個SSH連接。Tcl期望保持SSH產卵開放
我不知道這是否可能,直到現在我總是殺死ssh.exe,當我在MySQL查詢後嘗試「發送」命令。
我想讓SSH打開,因爲用Expect登錄需要10秒(Host ist slow),並且我不希望每次創建用戶都暫停一次。
我該怎麼做?
我在做什麼:
...
set db [::mysql::connect -host 127.0.0.1 -user root -password **** -db test]
spawn ssh [email protected]
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
}
只是好奇......爲什麼數據庫級別的觸發器不是你想要的? – mmmmmpie
以及我從來沒有與數據庫觸發器合作..所以我不知道這種可能性謝謝,但想法是,我有一個ssh連接打開所有的時間,然後發送一個新的用戶時發出一個命令.. 。 – Rory
當Expect腳本完成時,SSH連接將被關閉。在您的Expect腳本中,只需使用'for'或'while'循環將命令發送到遠程服務器即可。 – pynexj