自动化脚本

Linux主机批量执行命令

SUSE 11下批量安装snmp和sysstat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# /bin/bash
a=$(cat ip.txt|wc -l)
for((i=1;i<=$a;i++));
do
IP=$(sed -n $i'p' ip.txt) #打印匹配的行
PASSWORD=$(sed -n $i'p' password.txt)
echo
echo -e "\033[47;30m 目前安装: \033[0m" #设置字体背景颜色47,字体颜色30,
echo -e "\033[47;30m $IP \033[0m"
/usr/bin/expect << EOF
set timeout 5 #设置超时时间
spawn ssh root@$IP #默认都是使用root账号
expect {
"*yes/no" {send "yes\r" ; exp_continue}
"*assword: " {send "$PASSWORD\r"}
}
expect "*#*" {send "mkdir -p /tmp/soft/snmp/\r"}
expect "*#*" {send "scp root@192.168.11.95:/tmp/soft/snmp/* /tmp/soft/snmp/\r"}
expect {
"*yes/no" {send "yes\r" ; exp_continue}
"*assword: " {send "rootadmin\r"}
}
expect "*#*" {send "rpm -i /tmp/soft/snmp/net-snmp-5.4.2.1-8.12.16.1.x86_64.rpm /tmp/soft/snmp/perl-SNMP-5.4.2.1-8.12.16.1.x86_64.rpm\r"}
expect "*#*" {send "\r"}
expect "*#*" {send "rpm -i /tmp/soft/snmp/sysstat-8.1.5-7.45.24.x86_64.rpm\r"}
expect "*#*" {send "service snmpd start\r"}
expect "*#*" {send "echo rocommunity ITsvs617 192.168.11.0/24 >> /etc/snmp/snmpd.conf\r"}
expect "*#*" {send "cat /etc/snmp/snmpd.conf\r"}
expect "*#*" {send "service snmpd restart\r"}
expect eof #结束expect匹配
EOF
echo
echo -e "\033[47;30m 按任意键继续 \033[0m"
read -n 1 #读入一个字符
echo
echo -e "\033[47;30m 继续运行 \033[0m"
done

More info:设置输出的字体颜色

推荐文章