vlambda博客
学习文章列表

centos下文件同步镜像备份工具rsync实战

    近日测试了下centos的文件同步镜像备份工具rsync,步步陷阱啊,到处都是不应该出现的问题,但只要密码正确、文件权限正确、防火墙允许,就一定能成功。

一、服务器准备

两台CentOS 7.8 Vmware虚拟机 ,用CentOS-7-x86_64-Minimal-2009.iso安装

服务器端:10.129.10.106

客户端:10.129.10.107

均为新装未安装任何软件。

不习惯用命令行编辑的也可以用winwcp连接服务器,编辑文件内容、更改文件属性。值得是文件中的备注一定单起一行,有时不另起一行就会出错。


二、服务器端配置(服务器IP:192.168.1.163)

1. 安装rsync

命令:

yum install rsync #安装rsync服务

whereis rsync #查看系统是否已安装rsync,如已经安装会有提示信息

yum install rsync xinetd #选择安装,安装rsync超级守护进程,并设置开机自启动

gedit /etc/xinetd.d/rsync #编辑配置文件,设置开机启动rsync 修改disable = no(注意:有可能安装后无rsync文件,自己创建即可,文件内容如下。)

================================

# default: off

# description: The rsync server is a good addition to an ftp server, as it \

#       allows crc checksumming etc.

service rsync

{

        disable = no

        flags = IPv6

        socket_type = stream

        wait = no

        user = root

        server = /usr/bin/rsync

        server_args = --daemon

        log_on_failure += USERID

}

==================================

systemctl restart xinetd.service #开启服务

2. 配置rsync文件rsync.conf

使用命令:

gedit /etc/rsyncd.conf 


在文中添加如下内容:(备注一定单起一行)

uid = root 

#/模块目录属主,要添加

gid = root 

#/ rsync_test目录属组

use chroot = no 

#是否禁锢用户家目录

max connections = 200 

#最大连接数

timeout = 300 

#超时时间

pid file = /var/run/rsyncd.pid 

#启动后将进程PID放入此文件

lock file = /var/run/rsync.lock 

#设置rsync锁文件

log file = /var/log/rsyncd.log 

#不设或设置错误,rsync使用syslog输出日志


[rsync_test] 

#模块,自定义的

path = /var/www/html/ 

#指定的路径自定义的,chown -R root /var/www/html/(注意:这边是修改/ /var/www/html/所属的用户组) 

ignore errors 

#忽略错误 

read only = false 

#只读,为假,就是可读写 

list = false 

#列表,为假,不能远程列表 

hosts allow = * 

#指定可以联系的客户端主机名或IP,这里我没做限定 

hosts deny = * 

#指定拒绝访问的客户端主机名或IP,这里我没做限定 

auth users = ursync 

#允许的用户(非主机用户) 

secrets file = /etc/rsync.passwd 

#用户名,密码存放文件,格式:用户名:密码


3. 服务端添加rsync使用的密码文件,修改密码文件权限为“600”

vi /etc/rsync.passwd 

#服务端, 内容是:ursync:123456,注意,客户端的密码必须和服务端密码一致

chmod 600 /etc/rsync.passwd #修改文件权限


4. 服务添加到开机启动,并重启

#仅仅安装rsync

systemctl restart rsyncd.service #重新启动

systemctl enable rsyncd.service #添加到开机启动


#如果安装加强版rsyncd的xinetd ,做如下设置即可

systemctl restart xinetd .service #重新启动

systemctl enable xinetd .service #添加到开机启动


5、防火墙设置

要关闭防火墙或允许rsync端口873通过防火墙(我改成了874)

**************************************************************

firewall-cmd --zone=public --add-port=873/tcp --permanent

firewall-cmd --zone=public --add-port=874/tcp --permanent   

返回:(succes)

firewall-cmd --reload

**************************************************************


6、源目录/var/www/html/权限设置可写

按理说可读就行,但经常得可写才能正常备份。


三、客户端配置

1、安装rsync

命令:

yum install rsync #安装rsync服务

whereis rsync #查看系统是否已安装rsync,如已经安装会有提示信息


2、添加远程访问服务端密码文件,修改密码文件权限为“600”


vi /etc/rsync_test.passwd #客户端密码,内容:123456,注意,客户端的密码必须和服务端密码一致

chmod 600 /etc/rsync_test.passwd #修改文件权限


3、在本地建立备份文件夹,如和服务器端一致的/var/www/html/,并设置可写,如755


4、执行命令进行同步

命令:

rsync -avz [email protected]::rsync_test  /var/www/html/ --password-file=/ etc/rsync_test.passwd


说明:

[email protected]::rsync_test:使用用户(ursync)访问服务器(10.129.10.106),访问模块为rsync_test

password-file=/ etc/rsync_test.passwd:访问服务器(10.129.10.106)使用用户(ursync)的密码文件存放位置


双向同步,则在服务器端和客户端,分别部署rsync的环境即可,即互为服务器端和客户端。