rsync 守护进程模式小记

摘要:
.rsync在英语中称为remotesynchronization。它可以在本地或远程主机之间快速传输数据,以实现远程同步备份。与scp的完全备份相比,rsync还可以执行增量备份。远程模式:(普通推拉模式)#拉取远程服务器目录下的目录和文件[root@web01 ~]# rsync-avzroot@172.16.1.41:/tmp./#拉取远程服务器目录中的文件,不包括目录本身[root@web

.rsync英文称为remote synchronizetion,可以在本地或者远程两台主机之间快速传输数据,做到远程同步备份。相比scp,cp的全量备份,rsync还可以增量备份。

 

远程方式:(普通推,拉方式)

#拉取远程服务器目录及目录下的文件
[root@web01 ~]# rsync -avz root@172.16.1.41:/tmp  ./
#拉取远程服务器目录下的文件,不包含目录本身
[root@web01 ~]# rsync -avz root@172.16.1.41:/tmp/  ./

#将本地文件推送到远程

[root@web01 ~]# rsync -avz file1 root@172.16.1.41:/root/

注意:普通方式使用root用户,每次推送,拉取需要输入root用户的密码,在企业中这种情况是不被允许的。如果使用普通用户又会出现权限不足的情况,针对此种情况守护进程模式诞生了。

守护进程模式:

.两台机器,一台作为服务端,另外一台作为客户端,我们只需要将rsync服务部署到服务端,在客户端无需做任何操作就能将文件推送到远程服务端,自然也可以从远程服务端拉取需要文件到本地客户端。

1.环境准备

rsync 守护进程模式小记第1张

2.服务端安装rsync

[root@backup ~]# yum install -y rsync

3.编辑rsync配置文件

[root@backup ~]# vim /etc/rsyncd.conf        

uid = rsync        #指定运行程序的用户


gid = rsync       #指定运行程序的用户


port = 873        #服务的监听端口


fake super = yes          #不需要root用户启动,安全机制


use chroot = no            #限制操作目录(出于安全考虑)


max connections = 200      #最大可连接数量(可调整)


timeout = 600         #超时时间(可调整)


ignore errors          #忽略错误


read only = false        #关闭只读权限


list = false              #查看模块列表


auth users = rsync_backup        #指定授权的虚拟用户


secrets file = /etc/rsync.passwd      #指定授权的虚拟用户的密码


log file = /var/log/rsyncd.log       #日志文件
#####################################


[backup]        #模块名称


comment = welcome to oldboyedu backup!       #注释


path = /backup    真实的文件目录

 

 4.服务端创建用户

[root@backup ~]# useradd  rsync -s  /sbin/nologin -M   

 

5.服务端创建密码文件

[root@backup ~]# echo "rsync_backup:123456" > /etc/rsync.passwd   

 

6.密码文件授权

[root@backup ~]# chmod 600 /etc/rsync.passwd

 

7.服务端创建真实文件目录

[root@backup ~]# mkdir /backup
[root@backup ~]# chown -R  rsync.rsync  /backup/    

#授权用户就是启动rsync服务的用户,参考配置文件

8.服务端启动服务

[root@backup ~]# systemctl  start  rsyncd   

[root@backup ~]# netstat -lntp   

 
 tcp         0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      18673/rsync 
 tcp6       0      0 :::873                          :::*                   LISTEN      18673/rsync  
 
 

服务端配置完成,注意事项总结:

1.创建rsync服务的启动用户
2.创建指定的密码文件,路径需是配置文件中的路径+授权600
3.创建真实目录,授权用户权限
4.服务启动后一定要验证是否启动成功
 
 

客户端验证:

[root@web01 ~]# rsync -avz 1.txt rsync_backup@172.16.1.41::backup
Password:
sending incremental file list
1.txt
 
 

关于密码:

1.客户端根据提示手动输入密码

2.将密码写入文件保存,推送或拉取时使用--password-file参数指定密码文件路径即可

3.配置环境变量

[root@web01 ~]# export  RSYNC_PASSWORD=123456

 


*关于rsync报错原因解析*

1. [root@web01 ~]# rsync -avz rsync_backup@172.16.1.41::backu ./

@ERROR: Unknown module 'backu'


*原因:模块名字出错,检查输入的模块名字与配置文件中的名字是否相同

 

2. [root@web01 ~]# rsync -avz /tmp/ rsync_backup@172.16.1.41::backup

sending incremental file list
rsync: failed to write xattr user.rsync.%stat for "." (in backup): Permission denied (13)
rsync: failed to set times on "." (in backup): Operation not permitted (1)
./

sent 176 bytes received 205 bytes 762.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1179) [sender=3.1.2]


*原因:

1.检查firewalld,selinux是否关闭

2.权限不足,服务端创建的真实目录权限过高(root)

 

3.[root@web01 ~]# rsync -avz /tmp/ rsync_back@172.16.1.41::backup

@ERROR: auth failed on module backup

*原因:
1.虚拟用户错误,检查输入的用户名与配置文件中的用户名是否相同
2.虚拟用户的密码输入错误
3.密码文件权限不是600
4.服务端密码文件不存在

 

 

4. [root@web01 ~]# rsync -avz /tmp/ rsync_backup@172.16.1.41::/backup

ERROR: The remote path must start with a module name not a /

*原因:守护进程模式中::后面跟的是模块名字,而不是目录名字

 

 5.[root@web01 ~]# rsync -avz /tmp/ rsync_backup@172.16.1.41::backup

rsync: failed to connect to 172.16.1.41 (172.16.1.41): Connection refused (111)

rsync error: error in socket IO (code 10) at clientserver.c(125) [sender=3.1.2

*原因:服务端服务没有启动




 6.[root@web01 ~]# rsync -avz /tmp/ rsync_backup@172.16.1.41::backup

@ERROR: chdir failed

*原因:服务端文件目录不存在

 

 

 

 

 

 

 

免责声明:文章转载自《rsync 守护进程模式小记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JS转换Fri Oct 31 18:00:00 UTC+0800 2008格式利用Azure虚拟机安装Dynamics 365 Customer Engagement之十一:SQL Server配置Always On后D365的配置更改下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CentOS7通过SpeedTest工具测速

首先要安装SpeedTest工具,这里提供两种方法安装SpeedTest: 一、通过直接下载SpeedTest脚本,给权限运行脚本即可 [root@bogon ~]#wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py...

第4步:创建RAC共享磁盘组

第4步:创建RAC共享磁盘组 方法一:使用asmdevices(推荐使用,但不适用EMC Powerpath) (1)查看硬盘的SCSI号,两个机器认到的/dev/sda对应在实际的物理盘可能不是一块,但scsi号肯定是完全一致的。 代码1 [root@sgdb1 ~]# scsi_id -g -u -d /dev/sdc 36000c294cea6...

MySQL的安装、配置文件和初始化

MySQL基于源代码的安装 本文以MySQL5.1.73+Centos6.5作为安装演示,其他版本安装方法大同小异。首先下载MySQL5.1.73的源代码包。STEP01 创建MySQL运行期用户和用户组,当前步骤也可以在安装成功之后做: [root@localhost objs]# groupadd mysql [root@localhost objs...

oracle 错误 TNS-01190与oracle 登入没反应操作

1,问题描述 [oracle@node2 ~]$ lsnrctl stop LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 20-MAY-2019 09:02:03 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connect...

Genymotion刷入谷歌应用市场以及获取root权限

Genymotion刷入谷歌应用市场以及获取root权限 - 推酷http://www.tuicool.com/articles/rEV3aa6 刷入gapp, arm框架,supersu的包要注意,这些包所在的路径不能含有中文!!! 另外必须刷对的包 教程(包括我之前翻译的一篇Genymotion简单教程及问题解决),但是大多数都已经没法用了。根据那些...

Navicat远程连接MySQL数据库

Navicat连接远程MySQL数据库 环境:Ubuntu 18.10 (GNU/Linux 4.18.0-13-generic x86_64)+Navicat 12.0.18(64-bit)-Premium Welcome to Ubuntu 18.10 (GNU/Linux 4.18.0-13-generic x86_64) * Documen...