介绍
使用方法
1. 将此脚本和 patch.cs 文件放在同一目录下
2. patch.cs 里每个 IP 地址和每个 RPM 包名称占用一行
3. 给此脚本添加执行权限
4. 执行此脚本
5. 此脚本执行完成后,会将运行结果写入当前目录下的 checkout.csv 里
注意
此脚本执行前必须要先保证执行本脚本的用户能无密码 ssh 远程这些远程服务器
补充
patch.cs 示例如下:
192.168.100.101,kernel-4.18.0-80.el8.x86_64,other0
192.168.100.102,kernel-4.18.0-80.el8.x86_64,other1
192.168.100.103,kernel-4.11.0-80.el8.x86_64,other2
192.168.100.104,kernel-4.18.0-80.el8.x86_64,other3
192.168.100.105,kernel-4.18.0-80.el8.x86_64,other4
脚本
#!/bin/bash
for i in `seq 1 $(cat patch.csv | wc -l)`
do
servername=`sed -n "$[i]p" patch.csv | cut -d ',' -f 1`
software=`sed -n "$[i]p" patch.csv | cut -d ',' -f 2`
ssh $servername "rpm -qa | grep $software" &> /dev/null
if [ $? -eq 0 ];then
echo "$servername,$software,have not patched"
else
echo "$servername,$software,have patched"
fi
done