自动同步文件到远程服务器

我要实现的是在本地目录修改文件,自动同步更新到服务端去。

  1. 如果我们不习惯使用vim来在远程写代码,可以在本地用喜欢的IDE写,然后自动同步到远程进行编译和调试(别问我为什么要到远程去编译调试,C++带的.so文件已经把编译器版本锁定了)。当然可以用git来同步,但是提交什么的有点麻烦。
  2. 更改了的安装包需要同步部署到其他服务器去。

我们需要run_rsync.sh和auto_sync.sh两个脚本,假定需要同步的目录在./data目录下。 我们用rsync来同步,很多系统都自带了这个工具。

自动输入密码

run_rsync.sh

#!/usr/bin/expect

set SRC [lindex $argv 0]
set DST [lindex $argv 1]
set PASS [lindex $argv 2]

#--delete参数删除多余文件
spawn rsync -vazu --progress $SRC $DST

expect {
"yes/no" { send "yes\r";exp_continue }
"password:" { send "$PASS\r" }
}

expect eof

if [catch wait] {
    puts "rsync failed"
    exit 1
}
exit 0

这里使用了expect来自动输入密码。

隔一段时间运行一次

auto_sync.sh

SRC=./data
DST=root@192.168.1.100:/home/test
PASS=***

while true;
do
    ./run_rsync.sh $SRC $DST $PASS > auto_sync.log
    sleep 1s
done

每隔一秒钟同步一次,使用nohup在后台运行

nohup ./auto_sync.sh &

一切很好,再也不用学习难用的vim了。

转载于:https://my.oschina.net/chunquedong/blog/1586366

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值