写一个shell脚本,这个内网中每台服务器都要安装软件
时间: 2024-09-15 15:07:51 浏览: 47
在Linux环境下编写一个Shell脚本来批量安装软件,通常我们会使用`bash`语言,并借助`scp`、`ssh`等命令来实现跨主机操作。这里是一个简单的示例,假设我们要在所有内网服务器上安装名为`app.rpm`的rpm包:
```bash
#!/bin/bash
# 定义服务器列表文件
SERVER_LIST="servers.txt"
# 确保有权限执行
if [ ! -x "$0" ]; then
echo "Please make this script executable (chmod +x script.sh)"
exit 1
fi
# 检查文件是否存在
if [ ! -f "$SERVER_LIST" ]; then
echo "File $SERVER_LIST not found."
exit 1
fi
# 打开服务器列表并逐行处理
while IFS= read -r server; do
# 使用scp命令复制文件到服务器
scp app.rpm $server:/tmp/
# 登录到服务器
ssh $server
# 切换到临时目录并安装软件
sudo cp /tmp/app.rpm /opt/
sudo rpm -i /opt/app.rpm
# 提示安装完成
echo "Software installed on $server."
# 清理远程服务器上的临时文件
rm /tmp/app.rpm
# 结束当前连接
logout
done < "$SERVER_LIST"
# 如果所有操作都成功,打印一条消息
echo "Installation completed for all servers."
阅读全文