方法一,在終端上利用ssh,不登入遠端主機,直接發送重新開機指令
ssh [email protected] \'reboot\'
方法二,在終端上利用ssh和here document
ssh [email protected] bash <<EOF
reboot
EOF
這種方式在reboot的位置其實可以執行多條其他的指令,說到這兒,還有一種有意思的用法
ssh [email protected] 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