300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Linux Shell脚本专栏_批量主机远程执行命令脚本_08

Linux Shell脚本专栏_批量主机远程执行命令脚本_08

时间:2020-08-27 10:24:06

相关推荐

Linux Shell脚本专栏_批量主机远程执行命令脚本_08

文章目录

1. 安装expect2. 脚本制作3. 赋予权限4. 运行脚本5. 直接运行脚本6. vmstat测试

1. 安装expect

[root@localhost ~]# yum install expectLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfile* base: * extras: * updates: base | 3.6 kB00:00extras| 2.9 kB00:00updates | 2.9 kB00:00Resolving Dependencies--> Running transaction check---> Package expect.x86_64 0:5.45-14.el7_1 will be installed--> Finished Dependency ResolutionDependencies Resolved==========================================================================Package Arch Version Repository Size==========================================================================Installing:expect x86_64 5.45-14.el7_1 base 262 kTransaction Summary==========================================================================Install 1 PackageTotal download size: 262 kInstalled size: 566 kIs this ok [y/d/N]: yDownloading packages:expect-5.45-14.el7_1.x86_64.rpm | 262 kB 00:00Running transaction checkRunning transaction testTransaction test succeededRunning transactionInstalling : expect-5.45-14.el7_1.x86_64 1/1 Verifying : expect-5.45-14.el7_1.x86_64 1/1 Installed:expect.x86_64 0:5.45-14.el7_1 Complete![root@localhost ~]#

2. 脚本制作

host.info

#格式: ip地址 用户 端口 密码192.168.43.242 root 22 root192.168.43.134 root 22 root192.168.43.228 root 22 root

脚本内容:

#!/bin/bashCOMMAND=$*HOST_INFO=host.infofor IP in $(awk '/^[^#]/{print $1}' $HOST_INFO); doUSER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO)PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO)PASS=$(awk -v ip=$IP 'ip==$1{print $4}' $HOST_INFO)expect -c "spawn ssh -p $PORT $USER@$IPexpect {\"(yes/no)\" {send \"yes\r\"; exp_continue}\"password:\" {send \"$PASS\r\"; exp_continue}\"$USER@*\" {send \"$COMMAND\r exit\r\"; exp_continue}}"echo "---------Execute Successful! ----------"don

3. 赋予权限

chmod +x 8.sh

4. 运行脚本

[root@localhost ~]# ./8.sh df -hspawn ssh -p 22 root@192.168.43.228root@192.168.43.228's password: Last login: Tue Feb 25 10:32:22 from desktop-0shdb7s[root@localhost ~]# df -hFilesystemSize Used Avail Use% Mounted on/dev/mapper/centos-root 50G 2.1G 48G 5% /devtmpfs 898M0 898M 0% /devtmpfs910M0 910M 0% /dev/shmtmpfs910M 9.7M 901M 2% /runtmpfs910M0 910M 0% /sys/fs/cgroup/dev/sda11014M 146M 869M 15% /boot/dev/mapper/centos-home 47G 33M 47G 1% /hometmpfs182M0 182M 0% /run/user/0[root@localhost ~]# exitlogoutConnection to 192.168.43.228 closed.-------------------[root@localhost ~]#

5. 直接运行脚本

[root@localhost ~]# bash 8.sh df -hspawn ssh -p 22 root@192.168.43.228root@192.168.43.228's password: Last login: Tue Feb 25 10:36:06 from 192.168.43.134[root@localhost ~]# df -hFilesystemSize Used Avail Use% Mounted on/dev/mapper/centos-root 50G 2.1G 48G 5% /devtmpfs 898M0 898M 0% /devtmpfs910M0 910M 0% /dev/shmtmpfs910M 9.7M 901M 2% /runtmpfs910M0 910M 0% /sys/fs/cgroup/dev/sda11014M 146M 869M 15% /boot/dev/mapper/centos-home 47G 33M 47G 1% /hometmpfs182M0 182M 0% /run/user/0[root@localhost ~]# exitlogoutConnection to 192.168.43.228 closed.df -hexit-------------------[root@localhost ~]#

6. vmstat测试

[root@localhost ~]# bash 8.sh vmstatspawn ssh -p 22 root@192.168.43.228root@192.168.43.228's password: Last login: Tue Feb 25 10:39:57 from 192.168.43.134[root@localhost ~]# vmstatprocs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st1 00 1511112 2108 196804 0 041 15 20 0 0 100 0 0[root@localhost ~]# exitlogoutConnection to 192.168.43.228 closed.vmstatexit-------------------[root@localhost ~]#

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。