架構圖
切換到demo使用者
[root@m01 ~]# su - demo
[root@backup ~]# su - demo
[root@nfs01 ~]# su - demo
[root@web01 ~]# su – demo
[demo@m01 ~]$ ssh-keygen -tdsa
檢視生成的私鑰和公鑰
[demo@m01 ~]$ ll .ssh/
總用量 8
-rw------- 1 demo demo 672 4月 814:44 id_dsa
-rw-r--r-- 1 demo demo 601 4月 814:44 id_dsa.pub
非互動式一鍵生成私鑰:
[demo@m01 .ssh]$ ssh-keygen-t dsa -p '' -f ~/.ssh/id_dsa &> /dev/null
yum –y install expect
(1)首先建立分發公鑰指令碼
#!/usr/bin/expect
set host [lindex $argv 0]
set password "000000"
set username "demo"
spawn ssh-copy-id -i/home/$username/.ssh/id_dsa.pub $username@$host
expect
"password:"
}
expect eof
(2)批量執行分發指令碼
#!/bin/bash
for i in 8 31 41; do
echo$
expect/script/fenfa_sshkey.sh 172.16.1.$
done
其他知識:
expect語法:
set 變數名 「 值 」 #即變數=值
set 變數名 [lindex $arg 0] #傳遞引數給變數,變數=$arg 0(代表第乙個引數的值)
spawn + 命令 #互動的執行shell命令
expect ...send
對:expect等待希望出現的匹配串,對於匹配到的串,send傳送命令進行執行
interact
執行完成後保持互動狀態,把控制權交給控制台
如遠端自動登入指令碼:
#!/usr/bin/expect
set host "172.16.1.8"
set password "000000"
set username "demo"
spawn ssh $username@$host
expect
"password:"
}
interact
Expect 非互動式控制工具
1 一般需要安裝才能用 yun install y expect 2 是一種免費的非互動式工具 當執行有些命令還需我們輸入寫東西才能執行成功的就屬於互動式,例如 yum install 不加 y 時,我們還要輸入y才能安裝,就屬於互動式。3 基本引數 1 定義expect指令碼執行的shell us...
互動式命令 expect
shell儘管很強大。但是貌似無法完成互動式命令的操作,例項 ssh host 如果host而且該機沒有加入信任。手動輸入的時間需要password。這樣的情況下可以使用expect支援。下面舉個樣例來說明expect的功能與使用 功能 對集群各機器執行同樣指令 如 集群ip 為 192.168.6...
互動式 非互動式,登入式 非登入式Shell
互動式shell和非互動式shell 互動式模式 在終端上執行,shell等待你的輸入,並且立即執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的 登入 執行一些命令 退出。當你退出後,shell也終止了。非互動式模式 以shell scrip...