首页 » rsync - 文件备份

rsync - 文件备份

rsync工具意思是remote sync(远程同步),常用于同步2个目录的文件,或本地/远程的目录。

rsync的基本用法:

$ rsync src dst
$ rsync options src dst

rsync的常见选项:

选项说明
-a, --archive归档模式,保持所有文件属性。
-r, --recursive对子目录进行递归处理。
-z, --compress压缩。
-d只同步目录树,而不同步文件。
--delete用于同步目录,从dst中删除src中不存在的文件。
--progress显示备份过程。
-R, --relative使用相对路径信息。
-b, --backup创建备份。

在2个本地目录间执行备份:

$ rsync -zvr ~/.vim /tmp/backup_vim
...
sent 142640 bytes  received 520 bytes  286320.00 bytes/sec
total size is 553847  speedup is 3.87

注意,在rsync中并不保留文件的时间戳信息:

$ ls -l ~/.vim/filetype.vim /tmp/backup_vim/.vim/filetype.vim 
-rw-rw-r-- 1 bailing bailing 84 04-27 10:49 /home/bailing/.vim/filetype.vim
-rw-rw-r-- 1 bailing bailing 84 06-25 11:44 /tmp/backup_vim/.vim/filetype.vim

要想保留文件时间戳信息,可以用-a选项。-a的含义:

  • 递归模式。
  • 保留符号连接。
  • 保留文件访问权限。
  • 保留文件时间戳信息。
  • 保留用户和组信息。
$ rm /tmp/backup_vim/ -rf
$ rsync -azv ~/.vim /tmp/backup_vim
$ ls -l ~/.vim/filetype.vim /tmp/backup_vim/.vim/filetype.vim 
-rw-rw-r-- 1 bailing bailing 84 04-27 10:49 /home/bailing/.vim/filetype.vim
-rw-rw-r-- 1 bailing bailing 84 04-27 10:49 /tmp/backup_vim/.vim/filetype.vim

把本地文件推送(Push)到远程服务器:

$ rsync -avz ~/.vim/ bailing@berlinix.com:/tmp/

把远程服务器文件拉到本地(Pull):

$ rsync -avz bailing@berlinix.com:/home/bailing/.vim /tmp/

可以使用-i对比差异,再进行传输。注意,以下命令使用了-r而非-a进行比较:

$ rsync -rvzi bailing@berlinix.com:/www/berlinix/htdocs/photo/ htdocs/photo/

对比完差异后,Pull到本地:

$ rsync -rvz bailing@berlinix.com:/www/berlinix/htdocs/photo/ htdocs/photo/

只同步目录结构,而不同步文件:

$ rsync -vd /www/ tmp/www_backup

分享

0