Rsync服务详解 (2)

Example: 跨主机加密传输文件,指定ssh协议

[root@client data]# rsync -avz /etc/hosts -e 'ssh -p 22' root@39.108.140.0: root@39.108.140.0's password: sending incremental file list sent 43 bytes received 12 bytes 22.00 bytes/sec total size is 211 speedup is 3.84 # -e 指定加密协议以及协议端口号

限速传输

Rsync的传输默认是不限速的,传输时可能会占用很大的网络带宽,影响业务正常使用。可以使用参数:-bwlimit来限制传输时的网络带宽

Example: 传输时限速为1M/s

[root@client data]# dd if=http://www.likecs.com/dev/zero of=test bs=1M count=10 10+0 records in 10+0 records out 10485760 bytes (10 MB) copied, 0.00811283 s, 1.3 GB/s [root@client data]# seq 10 | xargs -i dd if=http://www.likecs.com/dev/zero of={}.dat bs=1024 count=1 # 不限速 [root@client data]# rsync -avz /data/test -e 'ssh -p 22' root@39.108.140.0:/data root@39.108.140.0's password: sending incremental file list test sent 10,293 bytes received 35 bytes 2,950.86 bytes/sec total size is 10,485,760 speedup is 1,015.27 # 限速 [root@client data]# rsync -avz /data/test -e 'ssh -p 22' --bwlimit=1 root@39.108.140.0:/data root@39.108.140.0's password: sending incremental file list test sent 10,293 bytes received 35 bytes 826.24 bytes/sec total size is 10,485,760 speedup is 1,015.27 # bwlimit的参数默认为1K bits/s

文件备份需要注意的事项

# 1. 备份需要考虑带宽限速(rsync,scp,ftp都有限速功能) # 2. 备份需要选择业务低谷 innotify的三种工作模式之Daemon模式

Daemon,即守护进程。该模式是在一台rsync服务器上安装并运行一个rsync的服务进程,其他的客户端通过rsync命令上传文件到服务器中。该模式是rsync最常用的功能,用来做数据的定时或者实时备份,下面来具体安装和介绍daemon模式。

Daemon模式的安装与配置 环境清单 节点名 IP 软件版本 硬件 网络 说明
server   39.108.140.0   rsync-3.1.2   1C2G   阿里云   测试环境  
Client   47.95.119.205   rsync-3.1.2   1C2G   阿里云   测试环境  
安装 [root@server data]# yum -y install rsync [root@server data]# rpm -qa |grep rsync rsync-3.1.2-10.el7.x86_64 配置服务端

修改/etc/rsyncd.conf

该配置文件时rsync服务器端默认的配置文件,该文件默认不存在,需要自己手动创建!填入内容如下:

cat rsyncd.conf uid = rsync # 配置用户,远端命令要使用rsync用户访问共享目录(访问目录的权限) gid = rsync # 配置rsync服务程序的用户组 use chroot = no # 安全相关 max connections = 200 # 设置最大连接数 timeout = 300 # 设置超时时间 pid file = /var/run/rsyncd.pid # 定义进程文件 lock file = /var/run/rsync.lock # 定义锁文件 log file = /var/log/rsyncd.log # 定义日志文件 [backup] # 配置一个数据存储的模块 path = /data # 模块备份数据路径 ignore errors read only = false list = false hosts allow = 47.95.119.205,172.25.1.0/24 # 配置登录权限,可以多个IP网段用逗号隔开 #hosts deny = 0.0.0.0/32 auth users = rsync_backup # 配置匿名服务登录用户(访问服务的权限) secrets file = /etc/rsync.password # 配置匿名用户和密码文件 配置用户 # 创建用户名为rsync的用户,只让其运行程序,不给其登录系统的权限以及家目录 [root@server data]# useradd rsync -s /sbin/nologin -M [root@server data]# tail -1 /etc/passwd rsync:x:1001:1001::/home/rsync:/sbin/nologin 配置存储路径

创建目录/data,并将其所属用户和用户组修改为rsync,因为程序需要用rsync用户来访问这个目录,如果rsync没有权限访问该目录,那么客户端也无法上传文件到备份数据目录。命令如下:

[root@server data]# mkdir /data/ -p [root@server data]# chown rsync:rsync /data/ [root@server data]# ls -ld /data/ drwxr-xr-x 2 rsync rsync 4096 Jul 29 23:12 /data/ 配置虚拟用户文件

/etc/rsync.password

rsync有一个重要的特性,就是可以使用一个虚拟的用户(不是实际存在的用户)来访问系统服务。为了使用这个功能,我们需要创建一个虚拟的用户文件,该文件已经在rsyncd.conf配置文件里面的secrets file定义好了,是/etc/rsync.password文件

[root@server data]# echo "rsync_backup:youmen" > /etc/rsync.password [root@server data]# cat /etc/rsync.password rsync_backup:youmen [root@server data]# chmod 600 /etc/rsync.password # 文件创建完成之后,需要修改文件的权限属性为600,否则程序无法正常运行 配置开机自启动 [root@server data]# echo '/usr/bin/rsync --daemon' >> /etc/rc.local [root@server data]# tail -1 /etc/rc.local /usr/bin/rsync --daemon 配置客户端

/etc/rsync.password

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyjfw.html