rsync 同步本地文件到远端

为了方便可以使用密钥登录:

# 将公钥发给需要远程同步的机器上,只需要输入一次密码即可
 ssh-copy-id -i ~/.ssh/id_rsa.pub root@x.x.x.x

想要达到的同步效果:
1. 某些文件不要同步过去
2. 某些目录不要同步过去
3. 远端删除本地删掉的文件
4. 包括子目录在内的所有文件都同步过去

同步命令如下:

ROOT_DIR=$(cd `dirname $0`; pwd)
DIR_NAME=$(basename ${ROOT_DIR})

HOST_IP="x.x.x.x"
HOST_USER="root"

rsync -avz --delete \
--exclude='lib/' \
--exclude='gateway/gateway' \
--exclude='WinPcap_4_1_3.exe' \
--exclude='*.log' \
${ROOT_DIR}/ ${HOST_USER}@${HOST_IP}:/tmp/${DIR_NAME}

参数说明:
1. -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
2. -v, --verbose 详细模式输出
3. -z, --compress 传输的时候压缩文件
4. --delete 删除远端上本地不存在的文件
5. --exclude 不包含哪些文件,要特别注意这里是模式匹配的,如果目录名和文件名一致,需要将路径也指定进去,不然同步会不完整,配置的时候需要观察一下,嗯,也不可以使用绝对路径,指定目录用’lib/’、也可用通配符’*/log’、也可以直接是文件名’WinPcap_4_1_3.exe’、或包含路径的文件名’gateway/gateway’

当然了,因为自己想要的不只是目录同步,所以呢,也可以配合ssh来做一些其它的事情
ssh执行命令如下:

ssh ${HOST_USER}@${HOST_IP} "bash /tmp/${DIR_NAME}/build.sh"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值