Linux SSH 远程执行脚本

2 篇文章 0 订阅
1 篇文章 0 订阅

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/bash

echo $1
echo $HOSTNAME

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

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

运行结果:

test
HOST1

3. 总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值