Linux Shell脚本专栏_批量主机远程执行命令脚本_08
文章目录
- 1. 安装expect
- 2. 脚本制作
- 3. 赋予权限
- 4. 运行脚本
- 5. 直接运行脚本
- 6. vmstat测试
1. 安装expect
[root@localhost ~]# yum install expect
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
base | 3.6 kB 00:00
extras | 2.9 kB 00:00
updates | 2.9 kB 00:00
Resolving 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 k
Installed size: 566 k
Is this ok [y/d/N]: y
Downloading packages:
expect-5.45-14.el7_1.x86_64.rpm | 262 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running 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 root
192.168.43.134 root 22 root
192.168.43.228 root 22 root
脚本内容:
#!/bin/bash
COMMAND=$*
HOST_INFO=host.info
for 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 -h
spawn ssh -p 22 root@192.168.43.228
root@192.168.43.228's password:
Last login: Tue Feb 25 10:32:22 2020 from desktop-0shdb7s
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 2.1G 48G 5% /
devtmpfs 898M 0 898M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.7M 901M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
/dev/mapper/centos-home 47G 33M 47G 1% /home
tmpfs 182M 0 182M 0% /run/user/0
[root@localhost ~]# exit
logout
Connection to 192.168.43.228 closed.
-------------------
[root@localhost ~]#
5. 直接运行脚本
[root@localhost ~]# bash 8.sh df -h
spawn ssh -p 22 root@192.168.43.228
root@192.168.43.228's password:
Last login: Tue Feb 25 10:36:06 2020 from 192.168.43.134
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 2.1G 48G 5% /
devtmpfs 898M 0 898M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.7M 901M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
/dev/mapper/centos-home 47G 33M 47G 1% /home
tmpfs 182M 0 182M 0% /run/user/0
[root@localhost ~]# exit
logout
Connection to 192.168.43.228 closed.
df -hexit
-------------------
[root@localhost ~]#
6. vmstat测试
[root@localhost ~]# bash 8.sh vmstat
spawn ssh -p 22 root@192.168.43.228
root@192.168.43.228's password:
Last login: Tue Feb 25 10:39:57 2020 from 192.168.43.134
[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st1 0 0 1511112 2108 196804 0 0 4 1 15 20 0 0 100 0 0
[root@localhost ~]# exit
logout
Connection to 192.168.43.228 closed.
vmstatexit
-------------------
[root@localhost ~]#
Linux Shell脚本专栏_批量主机远程执行命令脚本_08相关推荐
- Linux Shell脚本专栏_批量检测网站是否异常脚本_08
文章目录 1. 脚本制作 2. 运行脚本 3. 脚本进化动态参数传递 4. 运行脚本 5. 脚本分解 1. 脚本制作 #!/bin/bash URL_LIST=$@ for URL in $URL_L ...
- Linux Shell脚本专栏_批量创建100用户并设置密码脚本_03
文章目录 一.简单需求实现流程 1. 添加用户 2. 给用户设置密码 二.企业需求实现流程 2.1. 脚本准备工作 2.2. 企业级脚本 2.2. 需求说明 2.3. 企业级脚本说明 三.实战 3.1 ...
- 【shell】Linux Shell远程执行命令
目录 shell远程执行 前提条件: 对于简单的命令: 对于脚本的方式: SSH命令格式 主要参数说明 ssh控制远程主机,远程执行命令步骤 准备工作 基于公私钥认证远程登录可能存在的不足 ssh 执 ...
- 执行远程linux命令,linux shell 远程执行命令
经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦. 所有就想到编写一个脚本来部署不同的服务器 前提条件: 配置ssh免登陆 如果不会的请参加我的另外一篇文章 http://blog.csdn ...
- Linux 实操———— Shell 远程执行命令
引言 目前,开发人员的部署方式是,将项目打包(Maven 打包) 然后将 生成的 jar 包等文件,通过Xshell 等终端工具手动传输到远程服务器上,然后再通过在终端执行远程服务器上的 shell ...
- linux远程执行shell命令行,linux shell 远程执行命令--ftp
linux shell 远程执行命令--ftp 2018-12-07 ftp有很多命令,熟悉这些命令你能大大的提高工作效率: FTP命令行格式为: ftp -v -d -i -n -g [主机名] , ...
- shell打开wifi命令_远程执行命令的填坑记录
前言 本文主要记录 bash 四种模式的细节,以便于遇到问题时查阅. 远程执行出错了 最近使用 ansible 比较多,在某次使用 shell 模块远程执行命令的时候老是报 'command not ...
- expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行命令...
2019独角兽企业重金招聘Python工程师标准>>> expect脚本同步文件 更改权限 执行脚本 查看执行结果 expect eof需要加上,作用是等脚本命令执行完再进行退出 e ...
- expect脚本同步文件、 expect脚本指定host和要同步的文件 、 构建文件分发系统 、批量远程执行命令...
为什么80%的码农都做不了架构师?>>> 20.31 expect脚本同步文件 使用expect脚本同步文件 说明:核心命令是rsync #! /usr/bin/expect ...
最新文章
- Java Web中的jsp技术
- HDU 5988 最小费用流
- 将C1Chart数据导出到Excel
- 日志分析logstash插件-grok详解
- Hbase 高级特性Bloom filter
- OPA 5 - CreateButtonTest creates CreateButtonSteps
- java传参数的方法_java中方法的参数传递机制
- 安卓应用安全指南 5.6.1 密码学 示例代码
- java 中文路径 读取_Java读取文件时中文路径处理
- 【openjudge】字符串排序
- 模板题——快排、归并、二分
- DedeCMS5.5 调用当前内容页TAG标记的办法
- Linux Sed简介
- 武汉ISO27001认证的完整步骤
- 关于redis HSCAN count参数不生效的问题
- Linux系统下载并安装Redis
- PRINCE2认证的优势是什么?
- python3抓取-双色球开奖的所有历史数据-2003年始
- 达内python第一次月考题目_月考来临!第一次月考远比你想象的重要!
- 手把手教你几种生成词云的方式