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的环境即可,即互为服务器端和客户端。