Thursday, March 24, 2011

rsync

参考
Rsync on Ubuntu

同步两个目录的文件src和dst,两个文件可以在同一台机器上:
$rsync -a /home/path/src/ /home/path/dst/
两个文件也可以在不同的机器上, 比如从远端同步到本地:
$rsync -a -e ssh apc999@host:/home/path/src/ /home/path/dst/
或者从本地同步到远端:
$rsync -a -e ssh /home/path/src/ apc999@host:/home/path/dst/

一个稍微复杂些的例子:
将本目录文件(除 .svn文件外)同步到host上,保持所有文件属性
rsync --delete -azvv --exclude '.svn*' -e ssh . apc999@host:~/foo/
选项:
  • -a: 保持文件的时间权限等属性
  • -z: 在传输中压缩
  • -b: 如果覆盖一些文件,备份被覆盖的文件
  • -e: 指定remote shell
  • -r: 递归同步子目录
  • -v: verbose,显示详细的输出
  • --delete: 删除dst中src没有的文件
  • --exclude: 对于某些文件不进行同步

No comments: