使用sshpass在Linux服务器上批量执行脚本

用途描述:

如果Linux服务器未配置免密登录,每次使用ssh执行远程脚本时,都需要输入密码。
使用sshpass命令可以在多个Linux服务器上批量执行脚本,操作步骤如下:

1、安装sshpass

$ yum install -y sshpass

2、服务器检查脚本

编写服务器检查脚本,检查内容可根据实际情况进行自定义;
以下提供ip,服务,端口,进程,目录等内容的检查。

脚本文件: check_cmd.sh

#!/bin/sh
echo ----------------------------------------
echo 检查ip:
ip a|grep 192
echo 检查服务:nginx
systemctl list-units|grep nginx
echo 检查端口:8080
netstat -nao |grep 8080|awk '{print $6}'| sort |uniq -c |sort -nr
echo 检查进程:java
ps -ef|grep java
echo 检查目录:home
ll /home 
echo ----------------------------------------

3、批量密码登录(sshpass)

设置需要对哪些Linux服务器执行检查脚本;
以下列出如何检查3台服务器,可根据实际需求进行扩展。
注意:首次执行脚本前,需要使用ssh预先登录一下每个服务器。

脚本文件: check_ips.sh

#!/bin/sh
LOG_FILE=result.`date +%Y%m%dT%H%M%S`.log
sshpass -p '123456' ssh root@192.168.0.11 < check_cmd.sh >>$LOG_FILE
sshpass -p '123456' ssh root@192.168.0.12 < check_cmd.sh >>$LOG_FILE
sshpass -p '123456' ssh root@192.168.0.13 < check_cmd.sh >>$LOG_FILE

4、执行脚本

# 添加可执行权限
chmod +x check_cmd.sh
chmod +x check_ips.sh
# 执行脚本
./check_ips.sh
执行脚本后,将在当前目录生成一个执行日志文件:result.***.log
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值