安裝:
yum list | grep expect
yum install expect
批量建立使用者:
ansible mysqldb -m user -a 'name=ansible state=present'
ansible mysqldb -m raw -a 'echo 123456|passwd --stdin ansible'
批量新增sudo許可權:
[root@zabbix ~]# cat
ansible
-sudo ----編輯sudo檔案
## allow root to run any commands anywhere
#root all=(all) all
ansible all=(all) all
# ansible mysqldb -m copy -a 'src=~/
ansible
-sudo dest=/etc/sudoers.d/' ----批量新增sudo檔案
# ansible mysqldb -m file -a "dest=/etc/sudoers.d/
ansible
-sudo mode=440 owner=root group=root" ----修改許可權
# ansible mysqldb -m shell -a "rm -f /etc/sudoers.d/
ansible-
sudo" ----批量刪除檔案
批量配置ssh 免金鑰登入指令碼:
[root@zabbix ~]# cat sendsshkey.sh
#!/bin/bash
user=$1
if [ -z $1 ]; then
echo "usage: ./$0 username passwd"
fi function sendsshkey()@$
echo "*****===$# -- $1 -- $2 -- $3 *****===="
if [ ! $2 ] || [ ! $3 ] ;then
echo "ip/password not found !"
exit
else
expect -c "
spawn $ssh $keystore $@$
expect
\"*password*\"
\"*password*\" }
"echo -e "\033[40;32m send sshkey to $2 success \033[0m\n"
fi}
cat ./serverlist.txt |while read i
douser=$1
ip=`echo $i | awk ''`
#echo " $# -- $1 -- $2"
if [ $# -eq 1 ];then
password=`echo $i | awk ''`
elif [ $# -eq 2 ];then
password=$2
else
exit
fisendsshkey $user $ip $password
done
批量配置
免金鑰登入ip:
[root@zabbix ~]# cat serverlist.txt
172.16.100.23
172.16.100.24
172.16.100.25
172.16.100.26
172.16.100.27
# ansible mysqldb -m shell -a "rm -f /root/.ssh/*" ----刪除所有金鑰,取消免金鑰登陸配置
執行配置:
expect 批量監控主機
oracle oaprimary shell cat expect.sh while read line douser echo line awk ip echo line awk passwd echo line awk 把shell中的 user ip passwd引數傳遞給expect指令碼 ...
EXPECT 指令碼 批量 遠端互動
在shell自動部署專案中對自動部署免去使用者互動很痛苦 expect eof 這個一定要加,與spawn對應表示捕獲終端輸出資訊終止,類似於if.endif expect指令碼必須以interact或expect eof結束,執行自動化任務通常expect eof就夠了。設定expect永不超時。...
Expect安裝方法
expect是基於tcl語言的一種指令碼語言,其實無論是互動還是非互動的應用場合,expect都可以大顯身手,但是對於互動式的特定場合,還非except莫屬。b 第1步 使用root使用者登入 b b 第2步 複製安裝檔案 b 在合適的位置建立乙個資料夾,例如soft 修改資料夾讀寫許可權 chmo...