方法一,在終端上利用ssh,不登錄遠程主機,直接發送重啟命令
ssh root@192.168.8.128 'reboot'
方法二,在終端上利用ssh和here document
ssh root@192.168.8.128 bash <<EOF reboot EOF
這種方式在reboot的位置其實可以執行多條其他的命令,說到這兒,還有一種有意思的用法
ssh root@192.168.8.128 bash < test.sh
這樣可以在遠程主機上執行本地寫好的一個腳本文件
方法三,通過expect腳本自動執行,以下是我寫的一個expect腳本,test.expect
#!/usr/bin/expect set RHOST [lindex $argv 0] set PASSWORD [lindex $argv 1] set timeout 30 spawn ssh root@$RHOST 'reboot' expect { "yes/no" {send "yes\r";exp_continue} "password" {send "$PASSWORD\r"} timeout {exit 1} } expect eof exit 0
調用時,參數為遠程主機IP和密碼,如 expect test.expect 192.168.8.128 123
至於echo+sleep+|的方式,作為一個菜鳥,后面有時間再研究下
附:在linux系統上重啟遠程windows系統
net rpc shutdown -r -f -I 192.168.8.156 -U administrator%123