Rsync主动同步


一台机器作为服务端,一台机器作为客户端,客户端主动同步到服务端
查找相关文章:rsync

先记录一下

服务端为server机器,客户端为client机器,两台机器均为centos

server端需要添加配置文件,先来看看server端的安装配置

rysnc的官方网站:http://rsync.samba.org/  可以从上面得到最新的版本,编译安装

也可以使用如下命令安装

yum install rsync

安装完成后添加配置文件

mkdir /etc/rsyncd/
cd /etc/rsyncd/

建立用户

useradd rsyncuser

添加配置文件

vi /etc/rsnycd/rsyncd.conf

uid = root
gid = root
syslog facility = local3

#port = 873

use chroot = yes
read only = no

max connections = 20
timeout = 300

motd file = /etc/rsyncd/rsyncd.motd
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock

#允许的ip
hosts allow=177.177.177.177
hosts deny=*

secrets file = /etc/rsyncd/rsyncd.secrets

[workname]
path = /home/wwwroot/domain.com
list=no
ignore errors
comment = workname
auth users = rsyncuser
secrets file = /etc/rsyncd/rsyncd.secrets

添加同步命令时的header头,没有什么实际作用

vi /etc/rsyncd/rsyncd.motd

+++++++++++++++++++++++++++
+ rsync  2014 +
+++++++++++++++++++++++++++

添加用户配置文件

此用户必须是真实存在的用户,但密码可以随意,只需要客户端保持一致,建议与系统密码不同

vi /etc/rsyncd/rsyncd.secrets

rsyncuser:123Q1@2E3!
chown root.root /etc/rsyncd/rsyncd.secrets  #修改属主
chmod 600 /etc/rsyncd/syncd.secrets     #修改权限

注:
    1、将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功! 出于安全目的,文件的属性必需是只有属主可读。

    2、这里的密码值得注意,为了安全你不能把系统用户的密码写在这里。比如你的系统用户easylife密码是000000,为了安全你可以让rsync中的easylife为keer。这和samba的用户认证的密码原理是差不多的。

启动服务端

/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf


client端安装rsync

yum install rsync

设置密码文件

mkdir /etc/rsyncd
vi /etc/rsyncd/rsync.passwd
#输入之前服务端设置的密码
123Q1@2E3!

#保存之后设置属性600
chmod 600 /etc/rsyncd/rsync.passwd

建立一个可执行文件执行同步

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

# Check if user is root
if [ $(id -u) != "0" ]; then
    echo "Error: You must be root to run this script, please use root to install lnmp"
    exit 1
fi

/usr/bin/rsync -avzP --delete  --password-file=/etc/rsyncd/rsync.passwd /home/wwwroot/domain.com/* rsyncuser@118.118.118.118::workname


一些常见的错误信息和参数可以到这里查看

http://wjw7702.blog.51cto.com/5210820/1148808