使用rsync命令同步数据
2008-05-20 13:31
274 查看
使用rsync命令同步数据 考虑到服务器数据的安全,我考虑增加一台备份服务器,通过数据同步,达到较好的冗余。 linux下有非常好的一个命令rsync可以实现差异备份,下面就说说它的用法: ▲合适系统:红旗DC 4.1 or 5.0或其他linux、FreeBSD系统 ▲测试环境:红旗DC 5.0 一、通过rsh或ssh命令 在没有建立rsync服务器的情况下,我们可以利用rsync命令直接进行快速的差异备份: Code: 命令格式: #rsync [option] 源路径 目标路径 其中: [option]: a:使用archive模式,等于-rlptgoD,即保持原有的文件权限 z:表示传输时压缩数据 v:显示到屏幕中 e:使用远程shell程序(可以使用rsh或ssh) --delete:精确保存副本,源主机删除的文件,目标主机也会同步删除 --include=PATTERN:不排除符合PATTERN的文件或目录 --exclude=PATTERN:排除所有符合PATTERN的文件或目录 --password-file:指定用于rsync服务器的用户验证密码 源路径和目标路径可以使用如下格式: rsync://[USER@]Host[:Port]/Path 服务器路径 [USER@]Host::Path rsync服务器的另一种表示形式 [USER@]Host:Path 远程路径 LocalPath 本地路径 ※需要注意的是,来源或目的路径最少要有一个是本地路径,如果忽略本地路径,则只会列出远端的文件列表。 例子: Code: #rsync -ave ssh test:/home/ftp/pub/ /home/ftp/pub/ 把源路径中远端test机器上的/home/ftp/pub/目录中的内容,通过rsync同步到本地的/home/ftp/pub/目录下。 ◎小心源路径结尾时候的/号,后缀/通知rsync复制该目录的内容,但不复制目录本身。例如: Code: #rsync -ave ssh test:/home/ftp/pub /home/ftp/ 则会把pub目录整个同步到本地/home/ftp/路径中 Code: #rsync -azv --delete rsync://linuxing@192.168.1.100/blog /var/www/html/ 通过linuxing登陆到192.168.1.100中,同步rsync服务器的blog项到本地的/var/www/html/,并删除本地上源路径中不存在的文件或目录。 ※千万要注意--delete参数,在使用此参数的时候,建议用绝对路径指定本地目录,防止清空当前目录。 二、建立rsync服务器 当服务器没有开通ssh,或备份方没有ssh权限的时候,我们可以通过建立rsync服务器,进行匿名的数据同步。 要使用rsync服务,需要建立服务端和客户端: 1、服务端 主配置文件: Code: #vi /etc/rsyncd.conf log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock [test] #rsync区段的设定名称 path = /var/www/html/test #需要同步的数据存放路径 comment = test folder #注释 uid = apache #采用什么身份进行文件读取 gid = apache #同上,必须是有读取path权限的用户、组 ignore errors #忽略错误 read only = yes #只读 list = no #不能列表 auth users = linuxing #连接rsync服务的帐号 secrets file = /etc/rsyncd.secrets #指定存放帐号密码的位置 帐号密码文件: Code: #vi /etc/rsyncd.secrets #格式:帐号:密码 (每行一组,帐号和密码用:号分开) linuxing:backup 保存后,需要保证用户是root,权限是600 Code: #chown root:root /etc/rsyncd.secrets #chmod 600 /etc/rsyncd.secrets 启动服务: #rsync --daemon 保证开机自动启动: 修改/etc/xinetd.d/rsync文件,把其中的disable=yes改为disable=no Code: #sed -i -e "/disable/{ s/yes/no/ }" /etc/xinetd.d/rsync #service xinetd.d restart 2、客户端 使用用法一中涉及到rsync://的方法即可。 如果rsync服务器需要密码验证,可以增加--password-file参数: Code: #rsync -azv --delete rsync://linuxing@192.168.1.100/test /var/www/html --password-file=/etc/test #vi /etc/test #指定访问密码 bakcup #chmod 600 /etc/test 3、定时 另外,由于rsync客户端没有定时功能,我们可以通过在crontab中增加计划任务实现定时的同步,如:(不要使用-v参数,防止刷屏) Code: #crontab -e 0 22 * * 1-5 /usr/bin/rsync -az --delete rsync://linuxing@192.168.1.100/test /var/www/html --password-file=/etc/test #指定星期一到五,每晚十点整进行同步 三、总结 使用rsync的优点:可通过ssh进行网络加密传输,也可以利用ssh客户端密钥建立信任关系。当在两台计算机之间保持大型、复杂目录结构的同步时候,比tar或wget等方式都要快。而且可以做到精确同步。 四、附录 如果是通过编译安装的rsync(如FreeBSD),路径有点不同: 服务器的配置文件在:/usr/local/etc/rsyncd.conf 启动文件:/usr/local/etc/rc.d/rsyncd.sh 命令文件:/usr/local/bin/rsync 系统启动托管:/etc/rc.conf(增加rsyncd_enable="YES") 五、参考文章 http://rsync.samba.org/
相关文章推荐
- 使用rsync命令同步数据
- 使用rsync命令同步数据
- 两台机器使用rsync同步数据(手工执行命令同步)(使用推的方式)
- 使用rsync命令同步数据
- rsync 数据同步使用
- CentOS6.8使用Rsync+sersync实现数据实时同步 推荐
- rsync同步命令使用
- 使用Linux的rsync命令实现:多服务器镜像同步
- 使用rsync实现数据实时同步备份
- rsync 数据同步使用详解
- 使用Rsync同步你的数据
- CentOS6.5使用Rsync+Inotify-tools实现数据实时同步
- 使用Linux的rsync命令实现:多服务器镜像同步
- rsync ssh数据同步命令
- rsync 命令家族 使用 rsync 轻松地同步任意两台机器
- 使用rsync进行主机间数据同步及其他工具
- rsync ssh数据同步命令
- 10、使用rsync同步镜像服务器数据,安装记录
- 使用rsync实现数据实时同步备份--实战2: 使用ssh密钥实现无交互备份
- linux系统使用rsync 同步数据