shell批量部署安装包并启动
脚本如下
#!/bin/bash
# 定义目标服务器
servers=("192.168.0.100" "192.168.0.105")
# 定义文件和目录
file="pomp.tar.gz"
#remote_dir="/"
install_dir="/pomp"
# 循环遍历每个服务器
for server in "${servers[@]}"; do
echo "正在处理服务器: $server"
# 1. 发布文件到服务器
scp "$file" "root@$server:$install_dir"
if [ $? -ne 0 ]; then
echo "错误: 无法将文件发送到 $server"
continue
fi
# 2. 解压文件并设置权限
ssh "root@$server" << EOF
cd $install_dir
tar --strip-components=1 -xzvf $file
rm -f $file
if [ $? -ne 0 ]; then
echo "错误: 无法在 $server 上解压文件"
exit 1
fi
chown -R la_pomp_01:la_pomp_01 $install_dir
if [ $? -ne 0 ]; then
echo "错误: 无法在 $server 上设置目录权限"
exit 1
fi
# 3. 启动服务
sh $install_dir/new-flume/bin/run.sh
if [ $? -ne 0 ]; then
echo "错误: 无法在 $server 上启动服务"
exit 1
fi
echo "在 $server 上成功完成所有操作"
EOF
if [ $? -ne 0 ]; then
echo "在处理 $server 时发生错误"
else
echo "成功处理服务器: $server"
fi
done
echo "脚本执行完毕"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
上次更新: 2024/09/10, 15:32:43