最近遇到一个问题,需要编写相应的Linux命令,增量同步/var/mysql
里的所有文件到另外一个目录/opt/mysql
,但是里面相关的日志文件xx.log
是不同步的,这个场景,可以使用rsync来实现
rsync是英文词语remote sync
的缩写,是Linux系统一款比较实用的命令,可以用于文件的增量同步
rsync有哪些常用参数?通过查询https://www.linuxcool.com/rsync知道有如下参数,图来自该网站:
当然rsync的用法不止这些,还有其它一些比较常用的命令,详细的可以参考阮一峰老师的博客:rsync 用法教程
针对开头描述的业务场景,可以编写下面的Linux命令实现增量同步
rsync -avz - exclude='*. Iogs' /var/mysql/ /opt/mysql/
-a
:表示使用归档模式同步文件,等同于-rlptgoD
,其中-r
表示递归同步目录,-l
表示保留符号链接,-p
表示保留权限,-t
表示保留时间戳,-g
表示保留组信息,-o
表示保留所有者信息,'`-D’表示保留设备和特殊文件-v
·:表示详细模式输出同步过程的信息-z
:表示使用压缩模式传输文件,可以节省网络带宽--exclude=''*.logs
:表示排除logs日志文件/var/mysql/
:表示要同步的原目录路径/opt/mysq;/
:同步后的目录路径