一: 貼個腳本,主要實現兩個功能;
配置集羣免密碼登錄
可以遠程批量執行命令
#!/bin/bash case $1 in # 獲取option -cp | --cpoy) #判斷option for ip_list in `cat $2`;do #讀取$2文件每一行,將ip密碼信息存入ip_list變量 ip=`echo $ip_list | cut -d: -f1` #提取ip ps=`echo $ip_list | cut -d: -f2` #提取密碼 expect -c" spawn scp -r /root/.ssh/ $ip: #直接拷貝.ssh目錄,配置免密碼登錄 expect { \"*password*\" {send \"$ps\r\";exp_continue} \"*password*\" {send \"$ps\r\";} } " done ;; -c | --cmd) for ip_line in `cat $2`;do ip=`echo $ip_line| cut -d: -f1` if [[ "$4" = \h ]];then echo -e "\033[33m $ip: \033[0m" ssh $ip $3 else echo -e "\033[33m $ip: \033[0m" `ssh $ip $3` fi done ;; -h | --help ) echo -e "\e[1;32m Please create a IP Password file in advance: \e[0m" echo -e "\e[1;32m $0 -cp,--copy ip.txt \e[0m" echo -e "\e[1;32m $0 -c,--cmd ip.txt 'cmd' and \h \e[0m" ;; esac
二: 使用方法
主要和存儲有ip和密碼信息的文件配合使用(自己創建);
例如ip.txt的格式:
root@test01:~/lijp# cat ip.txt 192.168.7.1:123456 192.168.7.2:123456 192.168.7.3:123456 192.168.7.4:123456 192.168.7.5:123456 ......
三: 示例
1. 執行命令
root@test01:~/lijp# ./script-shell_main.sh -c ip.txt hostname 192.168.7.1: test01 192.168.7.2: test02 192.168.7.3: test03 192.168.7.4: test04 192.168.7.5: test05 ....
2. 配置免密碼登錄(就是cp .ssh/ 目錄)
root@test01:~/lijp# ./script-shell_main.sh -cp ip.txt spawn scp -r /root/.ssh/ 192.168.7.1: known_hosts 100% 16KB 16.2KB/s 00:00 authorized_keys2 100% 396 0.4KB/s 00:00 id_rsa1.pub 100% 393 0.4KB/s 00:00 authorized_keys 100% 777 0.8KB/s 00:00 id_rsa.pub 100% 396 0.4KB/s 00:00 id_rsa 100% 1675 1.6KB/s 00:00 config 100% 32 0.0KB/s 00:00 spawn scp -r /root/.ssh/ 192.168.7.2: known_hosts 100% 16KB 16.2KB/s 00:00 authorized_keys2 100% 396 0.4KB/s 00:00 id_rsa1.pub 100% 393 0.4KB/s 00:01 authorized_keys 100% 777 0.8KB/s 00:00 id_rsa.pub 100% 396 0.4KB/s 00:00 id_rsa 100% 1675 1.6KB/s 00:00 config 100% 32 0.0KB/s 00:00 spawn scp -r /root/.ssh/ 192.168.7.3: known_hosts 100% 16KB 16.2KB/s 00:00 authorized_keys2 100% 396 0.4KB/s 00:00 id_rsa1.pub 100% 393 0.4KB/s 00:00 authorized_keys 100% 777 0.8KB/s 00:00 id_rsa.pub 100% 396 0.4KB/s 00:00 id_rsa 100% 1675 1.6KB/s 00:00 config 100% 32 0.0KB/s 00:00 spawn scp -r /root/.ssh/ 192.168.7.4: known_hosts 100% 16KB 16.2KB/s 00:00 authorized_keys2 100% 396 0.4KB/s 00:00 id_rsa1.pub 100% 393 0.4KB/s 00:00 authorized_keys 100% 777 0.8KB/s 00:00 id_rsa.pub 100% 396 0.4KB/s 00:00 id_rsa 100% 1675 1.6KB/s 00:00 config 100% 32 0.0KB/s 00:00
目錄cp完,即可免密碼ssh遠程主機