Linux好用命令之rsync命令

针对实战使用进行讲解分析,不简简单单罗列命令参数了事。

1,构建使用

静态文件部署,一般会用到此命令,完整命令如下:

rsync -avz --progress -e 'ssh -p 34222' --exclude='Jenkinsfile' --delete ${WORKSPACE}/  root@192.168.0.1:/data/test/
  • -a:--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
  • -v:输出详细过程
  • -z:对正在备份的文件进行压缩处理
  • -r:对子目录以递归模式处理
  • -l:保留软连接
  • -p:保持文件权限
  • -t:保持文件时间信息
  • -g:保持文件属组信息
  • -o:保持文件属主信息
  • -D:保持设备文件信息
  • -e: –rsh=command 指定使用rsh、ssh方式进行数据同步,一般使用ssh
  • exclude: 排除某文件的同步,可以多个。
  • --delete:删除那些DST中SRC没有的文件。
  • --progress:显示每个文件传输的进度。知道是否有大型文件正在备份可能是有用的。

2,其他注意

  • 将dirA的所有文件同步到dirB内,并删除dirB内多余的文件

    $ rsync -avz --delete dirA/ dirB/ 
    

    源目录和目标目录结构一定要一致!!不能是dirA/* dirB/ 或者dirA/ dirB/* 或者 dirA/* dirB/*,如果不遵守,那么就不会删除。

  • 将dirA的所有文件同步到dirB,但是在dirB内除了fileB3.txt这个文件不删之外,其他的都删除

    $ rsync -avz --delete --exclude "fileB3.txt" dirA/ dirB/
    
  • 将dirA目录内的fileA1.txt和fileA2.txt不同步到dirB目录内

    $ rsync -avz --exclude="fileA1.txt" --exclude="fileA2.txt" dirA/ dirB/
    
  • 将dirA目录内的fileA1.txt和fileA2.txt不同步到dirB目录内,并且在dirB目录内删除多余的文件

    $ rsync -avz --exclude="fileA1.txt" --exclude="fileA2.txt" --delete dirA/ dirB/
    
  • 将dirA目录内的fileA1.txt和fileA2.txt不同步到dirB目录内,并且在dirB目录内删除多余的文件,同时,如果dirB内有fileA2.txt和fileA1.txt这两个被排除同步的文件,仍然将其删除

    $ rsync -avz --exclude="fileA1.txt" --exclude="fileA2.txt" --delete-excluded dirA/ dirB/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CN-FuWei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值