5
15
新手上路
上次连接多台服务器使用ssh-keygen,24机器去连接22、25,所以存在.ssh/authorized_keys 1.如果有.ssh/authorized_keys该文件则先删除rm -rf.ssh/authorized_keys复制代码
1.expect命令含义 expect是一种脚本语言,它能够代替人工实现与终端的交互,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。 2.expect使用场景 (1)并根据预定标准回答其问题,回答“是”、“否”或将控制权交还给您 (2)远程连接设备并执行自动化操作 (3)主要是一些需要人机交互的地方,如果提前知道应该输入什么指令都可以使用expect 工具 3.expect命令 命令 作用 send 用于向进程发送字符串 expect 从进程接收字符串 spawn 启动新的进程 interact 允许用户交互 exp_continue 处理匹配成功后,继续执行下一个匹配 命令中\r表示换行
1.安装expect工具yum install expect复制代码2.创建host.info2文件[root@localhost scripts]# vim host.info2192.168.70.25 root 22 123456192.168.70.22 root 22 123456复制代码3.创建shell脚本[root@localhost scripts]# vim 9.sh #!/bin/bashCOMMAND=$*HOST_INFO=host.info2IP_LIST=`awk '/^[^#]/{print $1}' $HOST_INFO`for IP in $IP_LIST;do USER=`awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO` PORT=`awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO` PASSWD=`awk -v ip=$IP 'ip==$1{print $4}' $HOST_INFO` expect -c " spawn ssh -p $PORT $USER@$IP expect { "(yes/no)" {send "yes\r"; exp_continue } "password:" {send "$PASSWD\r"; exp_continue} "$USER@*" {send "$COMMAND\r exit\r"; exp_continue} } " echo "-----------------------------------"done复制代码4.执行结果 bash 9.sh df -h[root@localhost scripts]# bash 9.sh df -h spawn ssh -p 22 root@192.168.70.25root@192.168.70.25's password: Last login: Wed Jul 12 01:30:48 2023 from 192.168.70.24[root@localhost ~]# df -h文件系统 容量 已用 可用 已用% 挂载点devtmpfs 475M 0 475M 0% /devtmpfs 487M 0 487M 0% /dev/shmtmpfs 487M 7.7M 479M 2% /runtmpfs 487M 0 487M 0% /sys/fs/cgroup/dev/mapper/centos-root 17G 2.6G 15G 15% //dev/sda1 1014M 138M 877M 14% /boottmpfs 98M 0 98M 0% /run/user/0[root@localhost ~]# exit登出Connection to 192.168.70.25 closed.df -h exit-----------------------------------spawn ssh -p 22 root@192.168.70.22root@192.168.70.22's password: Last login: Wed Jul 12 01:30:49 2023 from 192.168.70.24[root@zabbix-agent02 ~]# df -h文件系统 容量 已用 可用 已用% 挂载点devtmpfs 476M 0 476M 0% /devtmpfs 487M 0 487M 0% /dev/shmtmpfs 487M 7.7M 479M 2% /runtmpfs 487M 0 487M 0% /sys/fs/cgroup/dev/sda2 19G 2.1G 17G 11% //dev/sda1 1014M 132M 883M 13% /boottmpfs 98M 0 98M 0% /run/user/0[root@zabbix-agent02 ~]# exit登出Connection to 192.168.70.22 closed.df -h exit-----------------------------------复制代码bash 9.sh free -m[root@localhost scripts]# bash 9.sh free -mspawn ssh -p 22 root@192.168.70.25root@192.168.70.25's password: Last login: Wed Jul 12 01:31:24 2023 from 192.168.70.24[root@localhost ~]# free -m total used free shared buff/cache availableMem: 972 173 690 7 108 670Swap: 2047 0 2047[root@localhost ~]# exit登出Connection to 192.168.70.25 closed.free -m exit-----------------------------------spawn ssh -p 22 root@192.168.70.22root@192.168.70.22's password: Last login: Wed Jul 12 01:31:24 2023 from 192.168.70.24[root@zabbix-agent02 ~]# free -m total used free shared buff/cache availableMem: 972 150 707 7 114 690Swap: 0 0 0[root@zabbix-agent02 ~]# exit登出Connection to 192.168.70.22 closed.free -m exit-----------------------------------复制代码
上一篇: shell脚本-监控多台服务器磁盘利用率
下一篇: shell脚本-监控多台服务器磁盘利用率
举报 回复 使用道具 分享