ITPub博客

首页 > Linux操作系统 > Linux操作系统 > rsync同步软件

rsync同步软件

原创 Linux操作系统 作者:was_zhang 时间:2009-06-17 20:52:14 0 删除 编辑

用rsync对网站进行镜像备份
1 所需文件
rsync安装程序,rsync-3.0.2.tar.gz
rsync的官方网站下载:http://www.samba.org/ftp/rsync/
2 解压
# tar -xzpvf rsync-3.0.2.tar.gz
3 编译安装
# cd rsync-3.0.2/
# ./configure --prefix=/usr/local/rsync   (设定安装目录,这里的安装目录为/usr/local/rsync)
# make
# make install
        现在就有rsync命令可以用了,rsync命令放在/usr/local/rsync/bin。用rsync命令可以去运行有rsync服务的服务器上抓取资料。如果要把当前的机器变成一台rsync服务器的话,就需要继续进行一些配置了。

启动服务:# /usr/local/hzcms/rsync/bin/rsync --daemon

二、配置server端的/etc/rsyncd.conf文件
 这个文件,在RHAS4中是不存在的,需要创建,内容如下(注意注意事项的第一项):
uid = root  #可以使用任意权限去运行rsync,不过要确保对相应目录的操作权限
gid = root  #在这里我用的是root 注意注意事项的第二项
use chroot = no                                     # 不使用chroot
max connections = 4                           # 最大连接数为4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log               # 日志记录文件

[www]                                                     # 这里是认证的模块名,在client端需要指定
path = /home/htdocs                          # 需要做镜像的目录
comment = www.admin99.net        #这个没多大关系
#ignore errors                                     # 可以忽略一些无关的IO错误,这个总是在日志中报错,我把它注释掉了
read nly = yes                                   # 只读
list = no                                               # 不允许列文件
auth users = rsync                            # 认证的用户名,如果没有这行,则表明是匿名
secrets file = /etc/rsync.passwd    # 认证文件名

三、在server端生成一个密码文件/etc/rsync.passwd
格式很简单,用户名:密码,内容如下(注意注意事项第一项):
rsync:admin99
文件的属性必需是只有属主可读。

四、在server端将rsync以守护进程形式启动

rsync --daemon
如果要在启动时把服务起来,有几种不同的方法,比如:

 a、加入inetd.conf
编辑/etc/services,加入rsync   873/tcp,指定rsync的服务端口是873
编加/etc/inetd.conf,加入rsync  stream  tcp   nowait  root  /bin/rsync rsync --daemon

 b、加入rc.local
在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时rsync --daemon加载进去。

五、创建客户端的密码文件
密码文件中仅仅包含密码即可,内容如下:
admin99
密码要与server端设置的密码一致,注意文件的权限,仅属主可读

六、从client端进行测试

        下面这个命令行中-vzrtopglq里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。--progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。后面的rsync@ip中,rsync是指定密码文件中的用户名,之后的::www这一www是模块名,也就是在/etc/rsyncd.conf中自定义的名称。最后的/home1/mirror-www/htdocs/是备份到本地的目录名。在这里面,还可以用-e ssh的参数建立起加密的连接。可以用--password-file=/etc/rsync/www来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。l是把链接也同步复制,q是安静模式

七、修改/etc/crontab做好定时
crontab -e
1,11,21,31,41,51 * * * * root /usr/local/rsync/bin/rsync -vzrtopglq --size-only --progress --delete --password-file=/etc/rsync.passwd rsync@serverip::www /usr/local/hzcms/web/

查看是否成功:crontab -l
重启cron服务:service crond restart

八、注意事项
  1、配置文件中不要有空行
        行尾不要有空格
        把例子中的注释也去掉
  2、权限问题
        密码文件要设置成仅有属主可读(不管是server端还是client端)
        确保rsync有对/var/log的写权限(如果以较低的权限运行rsync的话)
        确保rsync对要备份的目录具有相应的权限

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21070542/viewspace-606617/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-06-17

  • 博文量
    20
  • 访问量
    54698