快捷搜索:   nginx

Linux rsync 和 SSH实现远程差量同步(备份)

公 司的网站服务器上几个网站近百兆的小需要每天到公司的内部服务器上,之前就是简单写了个脚本把每天到以日期命名的文件夹中,然后在公司的 内部服务器用ssh拉取下来,时间一长,小文件数越来越多,每天备份耗时很长,于是就想到了增量备份方案,这样就有效缩短备份时间,另外也节省了硬盘 空间。

这个单向同步命令正好满足了需求,rsync是unix-like系统下的数据镜像备份工具,工作原理就是在同步前对服务器文件进行对比然后进行差量同步。
特性如下:

可以镜像保存整个目录树和文件系统。 可以很容易做到保持原来文件的权限、时间等等。 无须特殊权限即可安装。 优化的流程,文件传输效率高。 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。 支持匿名传输。配合SSH使用下面一段简单脚本就实现了差量备份或同步。

下面这段简单代码就是配合ssh实现了远程差量备份或同步:

BASH

最后把脚本保存在 /var/cron/filessync.sh,设置好权限,执行 sh /var/cron/filessync.sh 一下看看效果。

正常使用此脚本的前提是两台机器做了密钥配对,可以参考进行设置。

最后把脚本加到crontab,设定好执行时间,就大功告成了,比如我设置了每天凌晨1点30分执行,用 crontab -e 进入定时任务编辑,增加如下代码:

30 01 * * * sh /var/cron/filessync.sh

rsync常用参数说明:

-v, –verbose 详细模式输出 -q, –quiet 精简输出模式 -c, –checksum 打开校验开关,强制对文件传输进行校验 -a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -r, –recursive 对子目录以递归模式处理 -R, –relative 使用相对路径信息 -e, –rsh=COMMAND 指定替代rsh的shell程序 –delete 是指如果Server端删除了一文件,那客户端也相应把这一文件删除,保持真正的一致。
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论