ssh 使用 rsync 工具
利用 快速地同步大型目录结构
通过ssh用tar 为系统的某部分建立远程副本是非常理想的,而rsync则更适合用来使两台机器之间保持系统的同步。一般说来,tar 用于最初的副本,而rsync 则用于获取自最后一份副本以来所发生的更改。这
是因为不存在任何目标文件时,tar 可能比rsync 速度更快,但是当两个文件系统之间的差异很小时,rsync 会比tar 快得多。
要通过ssh 运行rsync,可传递-e 选项,如下所示:
root@rover:~# rsync -ave ssh greendome:/home/ftp/pub/ /home/ftp/pub/
注意源端(在greendome 上)目录名称末尾的/。在源说明中,后缀/ 通知rsync 复制该目录的内容,但不复制目录文件自身。要想把目录包含在要复制内容的最顶层,就要去掉/:
root@village:~# rsync -ave ssh bcnu:/home/six .
这样会使village上的~ root/six/目录的副本与bcnu:/home/six/ 上的内容保持同步。
默认情况下,rsync 只复制文件和目录,但如果从源主机删除了文件和目录,那就不会从目标副本中删除这些文件和目录。要精确保存副本,须包含-- delete 标志:
six@jammer:~/public_html# rsync -ave ssh --delete greendome:~one/reports .
现在,如果从greendome 上的~ one/reports/ 中删除了旧的报告,那么每次运行该命令时,都会
从jammer 上的~six/public_html/reports/ 中删除这些报告。如果要在cron 中运行此命令,那么就应该去掉选项v。这样可保持输出不变(除非rsync 运行时出现问题,这时用户将会收到输出错误的电子邮件)。
备份
使 用ssh 传输rsync 流量具有下述优点:可通过网络加密数据,也可利用ssh 客户端密钥建立的任何信任关系。如果要在两台计算机之间保持大 型、复杂目录结构的同步性(尤其是两者间的差异很小时),那么rsync 就是一种起来极为方便(并且执行速度很快)、随心所欲的。
- 最新评论