shell腳本實現自動輸入賬號密碼連接運服務器并執行其他命令的方法-總結

操作

  • vi ssh.sh
#!/usr/tcl/bin/expect
 
if {$argc < 3} {
    puts "Usage:cmd <host> <username> <password>"
    exit 1
}
 
set timeout -1
set host [lindex $argv 0] 
set username [lindex $argv 1]
set password [lindex $argv 2]
 
spawn ssh $username@$host
expect { 
    "*yes/no" {send "yes\r"; exp_continue}
    "*password:" {send "$password\r"; exp_continue}
    "$username@*" {send "mkdir zzz;mkdir aaa;exit;\r" }
}
#interact
expect eof
exit
  • chmod +x ssh.sh
  • ./ssh.sh 127.0.0.1 root 123456

注意

  • 第一行定要寫這句話,否則會報spawn: command not found
    #!/usr/tcl/bin/expect:使用expect來解釋該腳本;
  • 這個腳本和shell腳本部分指令不兼容.注意分開寫
  • 這3個必須要有,否則他一登錄就退出掉了,不會執行mkdir的內容。


    image.png
  • interact會停在遠程服務器上。

參考資料

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容