1. 环境
有时我们的程序会部署在多个Linux服务器上,每次部署程序我们不可能把程序一一部署到各个服务器上,我们需要实现一个脚本来自动完成这事,这其中有两个难点:
2. 程序文件必须同步到各个服务器
3. 在各个服务器上启动程序
下面就围绕这两个问题来解决。
4. 解决问题
2.1 文件同步
文件同步实现起来比较简单,你可以使用scp,ftp,lftp,http 等等,这里我给大家推荐rsync 这个命令一般Linux服务器默认安装的都有,这个用来同步实在是方便多了,不懂的大家可以百度下,这里我提供一个我使用的
rsync -avrh --exclude '*.swp' --exclude '*.log' --delete ./ root@HOST1:/home/foo
2.2 脚本远程执行
先写个测试脚本remote.sh,后面用来远程执行
#!/bin/bash
echo $1
echo $HOSTNAME
这个脚本用来打印第一个参数和运行时的主机名 执行下述这个命令将 remote.sh 在 HOST1 上执行,无需拷贝
ssh root@HOST1 'bash -s' < remote.sh test
运行结果:
test
HOST1
3. 总结
这里只是提供一个小范例,想对rsync 更深入地可以Google,从这个例子我们可以看出SSH 这个工具的强大之处,其实它的作用还有很多,比如端口映射等等也是非常用的。
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2020/05/15 07:07