rsync文件增量备份工具

    以前在清理缓存时遇到写缓存命令sync,今天来看看同步命令rsync 。

    使用man rsync来查看命令的说明信息:rsync - a fast, versatile, remote (and local) file-copying tool,即“一个快速、多功能、远程(和本地)文件复制工具” 。这里的r指的是 remote, rsync即remote sync,与其他文件传输工具(如 FTP 或 scp)不同,rsync 的最大特点是会检查发送方和接收方已有的文件,仅同步大小或者最后修改时间发生变化的文件或目录。总的来说 ,rsync就是实现增量备份。

    rsync使用方法有三种:

    使用rsync --help查看参数的含义,在此罗列几个。源路径如果是一个目录的话,带上尾随斜线和不带尾随斜线是不一样的,不带尾随斜线表示的是整个目录包括目录本身,带上尾随斜线表示的是目录中的文件,不包括目录本身。

    递归 ,对子目录进行递归,即目录下的所有目录都同样传输。

    -r, --recursive            recurse into directories

    归档模式,以递归方式传输文件,并保持所有文件属性。

    -a, --archive              archive mode; equals -rlptgoD (no -H,-A,-X)

    详细模式,显示输出详细,传输时的进度等信息。

    -v, --verbose              increase verbosity

    传输时进行压缩以提高传输效率。

    -z, --compress              compress file data during the transfer

    模拟命令执行的结果,并不真的执行命令。

    -n, --dry-run              perform a trial run with no changes made

    将删除只存在于目标目录、不存在于源目录的文件。

1、本地同步

    rsync -av shells/ shells.bak/  将本地shells/ 目录中的文件备份到 shells.bak/,不包含目录。

    修改一下mtime后,再来同步一下,发现mtime修改后也会同步。

2、远程同步,rsync 默认使用 SSH 进行远程登录和数据传输。那么可以使用cron做定时任务来完成数据备份了。

    远程同步至本地,目标文件是原文件的镜像

    rsync -av --delete shells lighthouse@IP地址:/home/lighthouse/dest

    本地文件同步至远程,目标文件是原文件的镜像

    rsync -av --delete  lighthouse@IP地址:/home/lighthouse/myshells/  myshells

3、rsync daemon模式

    以daemon方式运行时Rsync server会打开一个873 端口,等待客户端去连接。目前这个功能没啥需求,暂时不测试了。

    需要注意的是,rsync里面有个参数--bwlimit十分重要,限制传输速度,防止在远程备份时把宽带占满。参数的默认单位是KiB 。还有,出于向后兼容的原因,速率限制将四舍五入到最近的KiB单位,因此速率不可能小于1024字节/秒。

    另外,rsync有另外一个作用。cp复制大文件时,无法知道进度以及速率,rsync -av --progress 可以解决这个问题。

你可能感兴趣的:(rsync文件增量备份工具)