分發系統介紹、 expect腳本遠程登陸、遠程執行命令、傳遞參數

1、分發系統介紹

當咱們要上線一個新代碼的時候,若是機器少,咱們的工做量不會很大,很容易完成,若是設備不少,有幾十臺,上百臺的話,那咱們的工做量會很是大,並且也不規範,這時,咱們就能夠用能夠用開源的軟件,expect腳本語言,進行實現分發系統的功能。shell

2、 expect腳本遠程登陸

一、expect腳本遠程登陸
二、安裝:yum install -y expect
三、寫一個expect的自動遠程登陸腳本
內容以下:ssh

#! /usr/bin/expect
set host "192.168.1.31" #這是expect的變量,它和shell不一樣的是變量前面要加set
set passwd "123456"
spawn ssh root@$host
expect {
"yes/no" { send "yes\r"; exp_continue} #第一次登陸會提示yes或者是no,send是發送。\r是回車。
"assword:" { send "$passwd\r" }
}
interact   # 須要停留在遠程的機器上,不須要退出。

四、給腳本權限:chmod a+x 1.expect
五、執行:./1.expectide

3、 expect腳本遠程執行命令

一、自動遠程登陸後,執行命令並退出
增長腳本以下內容:spa

#!/usr/bin/expect
set user "root"
set passwd "123456"
spawn ssh $user@192.168.1.31

expect {
"yes/no" { send "yes\r"; exp_continue}
"password:" { send "$passwd\r" }
}
expect "]*"
send "touch /tmp/12.txt\r"
expect "]*"
send "echo 1212 > /tmp/12.txt\r"
expect "]*"
send "exit\r"

二、執行腳本
./2.expect
三、 回車退出
四、從新執行自動登陸腳本
五、./1.expect
六、查看遠程建立的文件
七、ls -l /tmp/2018.txt code

4、expect腳本傳遞參數

一、傳遞參數
vi 3.expect
增長以下腳本內容:it

#!/usr/bin/expect

set user [lindex $argv 0] #把第一個參數的值賦給user
set host [lindex $argv 1]
set passwd "123456"
set cm [lindex $argv 2]
spawn ssh $user@$host

expect {
"yes/no" { send "yes\r"}
"password:" { send "$passwd\r" }
}
expect "]*"
send "$cm\r"
expect "]*"
send "exit\r"

二、給權限;
chmod a+x 3.expect
三、執行
./3.expect root 192.168.1.31 "ls;w;vmstat 1" #當有多個命令 須要用雙引號 做爲一個參數傳進去
四、查看
ls;w;vmstat 1class

相關文章
相關標籤/搜索