常用脚本
根据操作系统执行对应脚本
针对麒麟、红帽 7 、红帽 8 进行不同的操作
update_libblockdev.sh
#!/bin/bash
# 判断系统类型并执行对应的修复操作
# 定义系统类型变量
OS_TYPE=""
# 检测系统类型
if [ -f /etc/os-release ]; then
# . /etc/os-release
# 为了防止有人恶意篡改 /etc/os-release 文件,使用cat和grep来获取ID和VERSION_ID
ID=$(cat /etc/os-release | grep ^ID= | cut -d= -f2 | tr -d '"')
VERSION_ID=$(cat /etc/os-release | grep ^VERSION_ID= | cut -d= -f2 | tr -d '"')
case $ID in
kylin)
OS_TYPE="kylin"
;;
rhel)
if [[ $VERSION_ID =~ 7.* ]]; then
OS_TYPE="rhel7"
elif [[ $VERSION_ID =~ 8.* ]]; then
OS_TYPE="rhel8"
fi
;;
*)
echo "Unsupported operating system"
exit 1
;;
esac
else
echo "Cannot determine OS type"
exit 1
fi
# 执行对应的修复操作
case $OS_TYPE in
kylin)
echo "Running repair commands for Kylin..."
# 在此处添加麒麟系统的修复命令
# 示例: yum update -y libblockdev
;;
rhel7)
echo "Running repair commands for RHEL 7..."
# 在此处添加红帽7的修复命令
# 示例: yum update -y libblockdev
;;
rhel8)
echo "Running repair commands for RHEL 8..."
# 在此处添加红帽8的修复命令
# 示例: dnf update -y libblockdev
;;
*)
echo "Unsupported OS type: $OS_TYPE"
exit 1
;;
esac
echo "Repair completed successfully."
如果需要批量执行,可以利用 ssh 和 for 循环
# 创建要执行的主机列表文件 hosts.txt
cat <<EOL > hosts.txt
host1
host2
host3
EOL
# 使用 for 循环和 ssh 执行脚本
for host in $(cat hosts.txt); do
echo "Executing on $host..."
ssh user@$host 'bash -s' < update_libblockdev.sh
done