rsync(rem ote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机之间的文件。也可以使用 rsync 同步
本地硬盘中的不同目录。
rsync 是用于替代 rcp 的一个工具,rsync 使用所谓的 rsync算法进行数据同步,这种算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。CentOS 系统默认就安装了 rsync 软件包。
rsync 在首次复制时没有速度优势,速度不如 tar,因此当数据量很大时您可以考虑先使用 tar 进行首次复制,然后再使用 rsync 进行数据同步。
rsync命令 rsync 是一个功能非常强大的工具,其命令也有很多功能选项。rsync 的命令格式为:
1)本地使用:
rsync [OPTION...] SRC... [DEST]
2)通过远程 Shell 使用:
拉: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
推: rsync [OPTION...] SRC... [USER@]HOST:DEST
3)访问 rsync 服务器:
拉: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
推: rsync [OPTION...] SRC... [USER@]HOST::DEST
拉: rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
推: rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
其中:
SRC: 是要复制的源位置
DEST: 是复制目标位置
若本地登录用户与远程主机上的用户一致,可以省略 USER@
使用远程 she ll 同步时,主机名与资源之间使用单个冒号“:”作为分隔符
使用 rsync 服务器同步时,主机名与资源之间使用两个冒号“::”作为分隔符
当访问 rsync 服务器时也可以使用 rsync:// UR L
“拉”复制是指从远程主机复制文件到本地主机
“推”复制是指从本地主机复制文件到远程主机
当进行“拉”复制时,若指定一个 SR C 且省略 DEST,则只列出资源而不进行复制
若使用普通用户身份运行 rsync 命令,同步后的文件的属主将改变为这个普通用户身份。
若使用超级用户身份运行 rsync 命令,同步后的文件的属主将保持原来的用户身份。rsync的基本使用
在本地磁盘同步数据 # rsync -a --delete /home /backups
# rsync -a --delete /home/ /backups/home.0
在指定复制源时,路径是否有最后的 “/” 有不同的含义,例如:
/hom e : 表示将整个 /hom e 目录复制到目标目录
/hom e / : 表示将 /hom e 目录中的所有内容复制到目标目录
使用基于 ssh 的 rsync 远程同步数据
1、同步静态主机表文件
# 执行“推”复制同步(centos5 是可解析的远程主机名)
[root@soho ~]# rsync /etc/hosts centos5:/etc/hosts
# 执行“拉”复制同步(soho 是可解析的远程主机名)
[root@centos5 ~]# rsync soho:/etc/hosts /etc/hosts
2、同步用户的环境文件
# 执行“推”复制同步
[osmond@soho ~]$ rsync ~/.bash* centos5:
# 执行“拉”复制同步
[osmond@cnetos5 ~]$ rsync soho:~/.bash* .
3、同步站点根目录
# 执行“推”复制同步
[osmond@soho ~]$ rsync -avz --delete /var/www root@192.168.0.101:/var/www # 执行“拉”复制同步
[osmond@cnetos5 ~]$ rsync -avz --delete root@192.168.0.55:/var/www /var/www
使用基于 ssh 的 rsync 同步数据可以使用 -e ssh 参数,当前的 C e ntO S 默认指定使用 ssh 作为She ll。 若 您在其他系统上执行 rsync 命令,为确保使用 ssh 作为远程 She ll,请添加 -e ssh 参数。
通常 rsync 命令在后台以 cron 任务形式执行,为了避免从终端上输入口令需要设置 ssh。
使用 rsync 从远程 rsync 服务器同步数据
下面以镜像 C e ntO S 和 Ubuntu 的软件库为例来说明。
您可以到如下站点查找离自己最近的提供 rsync 服务的镜像站点
C e ntO S — http://www.ce ntos.org/m odule s/tinyconte nt/inde x .php?id=13 [http://www.proxys erve.net
/index.php? q=aH R0 c D ovL 3 d3 dy5 jZW5 0 b3 M ub3 J nL 2 1 vZH V s ZXM vdG lueWN vbnRlbnQ vaW5 kZXguc G hwP 2 lk P T E z]
Ubuntu — https://launchpad.ne t/ubuntu/+archivem irrors [http://www.proxys erve.net
/index.php? q=aH R0 c H M 6 L y9 s Y XV uY 2 hwY WQ ubmV 0 L 3 V idW5 0 dS8 rY XJ jaG l2 ZW1 pc nJ vc nM % 3 D ]
然后执行类似如下命令:
rsync -aqzH --delete --delay-updates /
r sync://mirror.centos.net.cn/centos /var/www/mirror/centos
rsync -azH --progress --delete --delay-updates /
rsync://ubuntu.org.cn/ubuntu /var/www/mirror/ubuntu/
rsync -azH --progress --delete --delay-updates /
rsync://ubuntu.org.cn/ubuntu-cn /var/www/mirror/ubuntu-cn/
为了每天不断更新,可以安排一个 cron 任务:
# crontab -e
# mirror centos at 0:10AM everyday
10 0 * * * rsync -aqzH --delete --delay-updates rsync://mirror.centos.net.cn/centos /var/www/mirror/centos
# mirror ubuntu at 2:10AM everyday
10 2 * * * rsync -azH --progress --delete --delay-updates rsync://ubuntu.org.cn/ubuntu /var/www/mirror/ubuntu/
# mirror ubuntu-cn at 4:10AM everyday
10 4 * * * rsync -azH --progress --delete --delay-updates rsync://ubuntu.org.cn/ubuntu- cn /var/www/mirror/ubuntu-cn/
如果您安装了自己的匿名 rsync 服务器请相应地更改 rsync UR L
centOS上使用rstudio centos rsync
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
windows echo 变量
1 echo 和 @ 回显命令 @ #关闭单行回显 echo off &
windows echo 变量 当前目录 bc 批处理