CentOS rsync配置

想要定时地把一台服务器上某个目录下的内容备份到另一台机器中,于是想到了rsync,两台机器均为CentOS操作系统。rsync有好几种使用模式,我采用的是服务器/客户端的模式,即其中一台作为服务端,一台作为客户端,服务端作为备份机,客户端定期将本地目录内容更新到远端机器上。

    1. 配置服务端

    a. 建立rsyncd配置文件 vi /etc/rsyncd.conf

    secrets file = /etc/rsyncd.secrets

    motd file = /etc/rsyncd.motd

    read only = no

    list = yes

    uid = nobody

    gid = nobody

    hosts allow = (IP address)

    max connections = 2

    log file = /var/log/rsyncd.log

    pid file = /var/run/rsyncd.pid

    lock file = /var/run/rsyncd.lock

    [abc_module]

    comment = Abc's data

    path = /home/abc

    auth users = abc

    其中secrets file是放置rsync用户密码的文件,需要新建,每一行放置一行用户名:密码如

    abc:123456

    该文件要设置为创建者只读,即 chmod 600 /etc/rsyncd.secrets

    motd file为客户端连上来的欢迎语句,也需要新建,随便写上一句话就可以了

    read only可以设置客户端是否只读或可写

    hosts allow可以设置客户端的IP地址限制

    [abc_module]是指定客户端连上来时采用的模块,该模块规定了使用的目录和用户名

    b.  检查并开启防火墙

    rsyncd将使用873端口,检查873端口是否开启

    telnet 127.0.0.1 873

    如果被拒绝,则需要开启873端口:

    iptables -A INPUT -s (IP address) -p tcp -m tcp --dport 873 -j ACCEPT

    iptables -A INPUT -p tcp -m tcp --dport 873 -j DROP

    其中IP address可填写为客户端的地址

    c. 启动rsync作为后台运行:

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

    

    2. 配置客户端

    a. 建立password file, vi /etc/rsync.pass

    12345

    注意该密码文件只含有密码,没有用户名。同样chmod 600 /etc/rsync.pass

    b. 开始备份文件

    rsync -avu --password-file=/etc/rsync.pass /path1/path2 [email protected]::abc_module

    上述命令把本机的/path1/path2目录备份到远端192.168.1.10机器上,使用用户名abc,采用abc_module

    此时远端的目录/home/abc需要有可写权限

    c. 加入crontab

    将上面的命令加入到crontab任务中,可以实现周期性的备份

    


你可能感兴趣的:(CentOS rsync配置)