zoukankan      html  css  js  c++  java
  • Rsync 配置过程(靠谱)

    Rsync 版本

    [root@mail video]# rsync –version 
    rsync  version 3.0.6  protocol version 30 
    Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others. 
    Web site: rsync.samba.org 
    Capabilities: 
        64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints, 
        socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace, 
        append, ACLs, xattrs, iconv, no symtimes

    rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you 
    are welcome to redistribute it under certain conditions.  See the GNU 
    General Public Licence for details.

    服务器同步任务需求

    • 服务器A与服务器B同步备份,这里只说明服务器A同步到服务器B,服务器B还原到服务器A。
    • 考虑安全因素,使用普通用户进行同步。
    • 使用cronjob,定时同步。

    错误提示

    错误发生在rsync 3.0.6版本,64位 CentOS5.5 系统。

    首页这篇文章主要解决的错误是以下:

    @ERROR: auth failed on module *** 
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]

    *** 是你/etc/rsyncd.conf 中配置的模块,我这里用

    password file must not be other-accessible 
    continuing without password file 
    Password: 
    @ERROR: auth failed on module *** 
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]

    Rsync 配置

    #vi /etc/rsyncd.conf

    uid = nobody 
    gid = nobody 
    max connections = 4 
    read only = true 
    #hosts allow = 202.207.177.180 
    hosts allow = * 
    transfer logging = true 
    log format = %h %o %f %l %b 
    log file = /var/log/rsyncd.log 
    slp refresh = 300 
    log file = /var/log/rsyncd.log 
    pid file = /var/run/rsyncd.pid 
    lock file = /var/run/rsyncd.lock

    [web] 
    path = /home/admin/public_html 
    comment = Mirror to Hk server 
    read only = true 
    list = false 
    auth users = lixiphp

    [test] 
    path = /home/admin/domains/test 
    read only = false 
    auth users = lixiphp 
    secrets file = /etc/rsyncd.secrets

    配置普通用户密码

    [root@mail video]# vi /etc/rsyncd.secrets

    格式为: username:password

    rsync_user:rsyncofpass

    设置权限为只读:

    chmod 600 /etc/rsyncd.secrets

    首次启动rsync

    rsync –daemon –config=/etc/rsyncd.conf

    如果提示

    failed to create pid file /var/run/rsyncd.pid: File exists

    使用指令

    rm -rf /var/run/rsyncd.pid

    重启已经在运行的rsync

    [root@mail video]# ps -ef | grep rsync 
    root     27284     1  0 10:26 ?        00:00:00 rsync –daemon –config=/etc/rsyncd.conf 
    root     30516 29986  0 18:35 pts/3    00:00:00 grep rsync 
    [root@mail video]# kill -9 27284 
    [root@mail video]# rsync –daemon –config=/etc/rsyncd.conf

    这样服务器A配置成功!

    服务器B配置

    一般错误都会发生在服务器B,注意这部分的讲解!

    通过CentOS yum install rsync,安装rsync服务。

    在rsync安装之后,运行以下指令同步备份:

    rsync -vzrtopg –progress –delete –password-file=/home/admin/admin_backups/password.rsync rsync://lixiphp@203.171.237.245/test  /home/admin/admin_backups/test

    地址rsync://lixiphp@203.171.237.245/test,lixiphp为服务器A用户,203.171.237.245服务器A IP地址或者域名 test为服务器A配置模块

    密码存放在/home/admin/admin_backups/password.rsync,这里存放位置,可自由安排。

    password.rsync内容格式为: password

    rsyncofpass

    设置权限为只读:

    chmod 600 /home/admin/admin_backups/password.rsync

    解决错误

    用户密码错误

    @ERROR: auth failed on module test 
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]

    检查服务器A存储密码文件和服务器B密码文件。

    • 服务器A密码文件 /etc/rsyncd.secrets 格式为: username:password
    • 服务器B密码文件 password.rsync 格式为:password

    文件权限错误

    password file must not be other-accessible 
    continuing without password file 
    Password: 
    @ERROR: auth failed on module *** 
    rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]

    检查服务器A存储密码文件和服务器B密码文件。

    • 服务器A密码文件 /etc/rsyncd.secrets 权限为600: chmod 600 /etc/rsyncd.secrets
    • 服务器B密码文件 password.rsync 权限为600:chmod 600 password.rsync

    定时任务

    [root@hk admin_backups]# vi backup.sh

    内容如下:

    #/bin/sh 
    rsync -vzrtopg –progress –delete –password-file=/home/admin/admin_backups/password.rsync rsync://lixiphp@203.171.237.245/test  /home/admin/admin_backups/test

    添加定时任务:

    [root@hk admin_backups]# crontab –e

    添加以下内容:

    */1 * * * * /home/admin/admin_backups/backup.sh > /dev/null 2>&1

    每个一分钟从服务器A同步到服务器B!

    服务器B向下备份到服务器A

    rsync -vzrtopg –progress –delete –password-file=/home/admin/admin_backups/password.rsync  /home/admin/admin_backups/test rsync://lixiphp@203.171.237.245/test

    请确保服务器A同步用户lixiphp,对模块test所在目录有读、写、执行的权限。

  • 相关阅读:
    CAST和CONVERT
    #pragma 预处理指令详解
    Android系统移植主要事项
    Java动态绑定机制的内幕
    Java接口和抽象类用法总结
    Android工程的编译过程
    点击按钮,并且实现增加一个按钮的效果 (附效果图)
    iOS-设置导航栏"返回"按钮 (附效果图)
    常用代码整理(重要)
    NSTimer 的暂停与恢复运行。
  • 原文地址:https://www.cnblogs.com/ylqmf/p/2702967.html
Copyright © 2011-2022 走看看