您现在的位置:首页 > 系统运维 > Linux运维

centos7 搭建rsync服务 实现文件同步 详细步骤 与常见排错

rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync…

rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。
特性:
·可以镜像保存整个目录树和文件系统。
·可以很容易做到保持原来文件的权限、时间、软硬链接等等。
·无须特殊权限即可安装。
·快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。
·rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
·安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
·支持匿名传输,以方便进行网站镜像。

 

以上内容摘自百度词条。

 

搭建环境为Centos7.3,关闭selinux,关闭防火墙的环境。

话不多说,上搭建步骤:

服务器端:

yum install rsync -y    安装软件

vim /etc/rsyncd.conf   创建配置文件:

#------------config_file_stat----------------
uid = rsync 用户,远端的设备使用该用户访问共享用户
gid = rsync 用户组
use chroot = yes 安全相关
max connections = 4 最大用户数连接数
timeout = 300 超时时间
pid file = /var/run/rsyncd.pid 进程对应的进程号文件
lock file = /var/run/rsyncd.lock 锁文件
log file = /var/run/rsyncd.log 日志文件
exclude = lost found/
transfer logging = yes
ignore nonreadable = yes

[backup] 模块名称
path = /home/backup 服务器提供的同步目录,也就是服务器存储的目录
comment = ftp export area
ignore errors 忽略I/O错误
read only = false 可写入
list = false 不能列出文件
hosts allow = 10.1.1.1/24 访问地址限制,允许的地址
#hosts deny = 0.0.0.0/32 访问地址限制,拒绝的地址,两个配置二选一即可
auth users = rsync_backup 登陆该模块的用户名
secrets file = /etc/rsync.password 指定模块密码文件
#------------config_file_end----------------

手动创建配置文件中需要目录与文件

[root@test ~]# id rsync 查询是否有该用户
id: rsync: no such user
[root@test ~]# useradd rsync -s /sbin/nologin -M     创建用户不需要登录,不需要存在home目录
[root@test ~]#
[root@test ~]#
[root@test ~]# tail -l /etc/passwd                                    确认用户创建情况
polkitd:x:998:997:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
admin:x:1000:1000::/home/admin:/bin/bash
rsync:x:1001:1001::/home/rsync:/sbin/nologin
[root@test ~]# rsync –daemon                                            启动rsync服务

设置软件开机自启动:

[root@test ~]# echo "/usr/bin/rsync --daemon" >> /etc/rc.local
[root@test ~]# tail -l /etc/rc.local
[root@test ~]# ps -ef | grep rsync                                   确认进程启动成功
root 2347 1 0 12:59 ? 00:00:00 rsync –daemon
root 2351 2230 0 12:59 pts/0 00:00:00 grep –color=auto rsync
[root@test ~]#

发现问题,程序运行用户为root
 

[root@test home]# ls -ld /home/backup/                         查看属主为root
drwxr-xr-x 2 root root 4096 Feb 9 13:03 backup/
[root@test home]# chown rsync.rsync backup/              更改文件夹的属主
[root@test home]# ls -ld backup/                                    确认更改情况
drwxr-xr-x 2 rsync rsync 4096 Feb 9 13:03 backup/

[root@test ~]# vim /etc/rsync.password     编辑模块下用户名对应的密码文件,添加“sync_backup:123456”
[root@test ~]# cat /etc/rsync.password
rsync_backup:123456                                                        对应格式为 “用户名:密码”
[root@test ~]# ll /etc/rsync.password
-rw-r–r– 1 root root 20 Feb 9 13:19 /etc/rsync.password           其他用户有读权限
[root@test ~]# chmod 600 /etc/rsync.password                         更改文件权限600
[root@test ~]# ll /etc/rsync.password
-rw——- 1 root root 20 Feb 9 13:19 /etc/rsync.password
[root@test ~]#

检查服务端口是否正常:
两种方法查看服务对应的端口

[root@test ~]# lsof -i :873
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 2347 root 4u IPv4 28823 0t0 TCP *:rsync (LISTEN)
rsync 2347 root 5u IPv6 28824 0t0 TCP *:rsync (LISTEN)
[root@test ~]#
[root@test ~]# netstat -lntup|grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2347/rsync
tcp6 0 0 :::873 :::* LISTEN 2347/rsync
[root@test ~]#

客户端配置:

需要安装软件,配置密码文件:

yum install rsync -y                               安装软件
vim /etc/rsyncd.password
添加内容“client123456”

修改文件权限
chmod 600 /etc/rsync.password
创建本地临时备份目录
mkdir /home/backup

在客户端进行上传文件同步测试,下面提供两个命令方式:

1、

[root@localhost backup]# rsync -avz /home/backup/ rsync_backup@服务器端ip地址::backup/ --password-file=/etc/rsyncd.password

参数说明:

-avz 为
/backup 为本地目录
rsync_backup 为服务器配置文件中模块配置的验证用户
backup/为远端服务器的模块名称
–password-file=etc/rsync.password 客户端创建的密码文件

2、

rsync -avz /backup rsync://rsync_backup@xx.xx.xx.xx/backup/ --password-file=etc/rsync.password

 

故障1

误将服务器的backup文件夹删除重新创建的,但未改变文件夹属主,造成文件无法写入,现象如下:
sending incremental file list
rsync: recv_generator: mkdir “/backup” (in backup) failed: Permission denied (13)
*** Skipping any contents from this failed directory ***
backup/

sent 117 bytes received 175 bytes 194.67 bytes/sec
total size is 2,221,165 speedup is 7,606.73
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]

解决方法,重新配置文件夹的属主。

[root@test home]# chown rsync.rsync backup/ 更改文件夹得属主

版权所有
侵权必究

上一篇
centos 查看cpu、内存等系统基本信息
下一篇
Linux磁盘与文件系统管理基础