Rsync的简单使用

Rsync的简单使用


需求

一个运行很久的系统里面可能包含了非常多的垃圾文件. 
但是又不可能随便删除, 很多垃圾可能有某些奇葩的用法. 
有时候新建一个应用复制文件的话比较浪费磁盘和带宽.
所以这里简单总结一下一些很简单的用法.

第一部分安装

有时候很多低配安装的系统不带rsync的命令
如果可以上网可以直接安装. 
如果不能上网可以下载rsync的rpm包进行安装.
实在不可以, 可以拿一个差不多版本同架构机器上面的rsync的二进制
复制到 /usr/bin 目录下 进行使用. 

第二部分: 差分同步

rsync -av /data/myapp  /databack/ --delete
说明1:
-a 的命令表广泛:
-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
等效于如下命令一起使用:
-r, --recursive             recurse into directories
-l, --links                 copy symlinks as symlinks
-p, --perms                 preserve permissions
-g, --group                 preserve group
-o, --owner                 preserve owner (super-user only)
-t, --times                 preserve modification times
说明2:
-v 仅是为了验证效果, 以后可以不使用
说明3:
--delete 
是会将第一个目录里面曾经删除过的动作在目录2里面执行重演. 
能够保证两个目录再增量备份时,删除的文件也是一样的. 

第二部分: 排除部分文件

回到需求里面的描述. 其实我们很大的需求是可以少同步几个目录. 来提高速度
命令需要为:
rsync -av --exclude="somepath/underpatch" --exclude="*.log"  /data/myapp [email protected]:/databack/

说明1:
注意--exclude= 的后面需要使用双引号. 
注意引号内部/data/myapp 作为父路径的目录或者是文件即可. 比如 如果不想同步 /data/myapp/somepath 直接输入
--exclude="somepath" 就可以. 

说明2:
-v 也可以忽略. 

第三部分: 关于 / 的处理

先说明: 结论需要自己实测. 我这边使用的是centos 其他操作系统我保证不了

认为关于 / 的处理. From的路径是有用的. To的路径用途不大. 都会指代路径. 
嘉定目录信息为:
/data/myapp/{1,2,3}

rsync -av /data/myapp /databack/ 
这个命令 会将 myapp 完整的复制到 /databack/的目录下面
结果就是 /databack/myapp/{1,2,3}

rsync -av /data/myapp/ /databack2
这个命令 会将 myapp 下面的内容复制到 /databack2/ 的目录下面
结果为 /databack2/{1,2,3}

第三部分: 关于复制部分最近修改的文件

rsync -av remote_host:'$(find logs -type f -ctime -1)' local_dir 
如果端口号不是标准的:
rsync -av -e 'ssh -p 2234' source/ user@remote_host:/destination
注意 如果ssh互信了,可以直接用.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章