Linux SSH 远程执行脚本

来源:互联网 发布:linux mint cinnamon 编辑:程序博客网 时间:2024/05/29 08:31

1. 环境

有时我们的程序会部署在多个Linux服务器上,每次部署程序我们不可能把程序一一部署到各个服务器上,我们需要实现一个脚本来自动完成这事,这其中有两个难点:
1. 程序文件必须同步到各个服务器
2. 在各个服务器上启动程序
下面就围绕这两个问题来解决。

2. 解决问题

2.1 文件同步

文件同步实现起来比较简单,你可以使用scp,ftp,lftp,http 等等,这里我给大家推荐rsync 这个命令一般Linux服务器默认安装的都有,这个用来同步实在是方便多了,不懂的大家可以百度下,这里我提供一个我使用的

rsync -avrh --exclude '*.swp' --exclude '*.log' --delete ./ root@HOST1:/home/foo

2.2 脚本远程执行

先写个测试脚本remote.sh,后面用来远程执行

#!/bin/bashecho $1echo $HOSTNAME

这个脚本用来打印第一个参数和运行时的主机名
执行下述这个命令将 remote.shHOST1 上执行,无需拷贝

ssh root@HOST1 'bash -s' < remote.sh test

运行结果:

testHOST1

3. 总结

这里只是提供一个小范例,想对rsync 更深入地可以Google,从这个例子我们可以看出SSH 这个工具的强大之处,其实它的作用还有很多,比如端口映射等等也是非常用的。

0 0
原创粉丝点击