配置服务器rsync服务
1.配置rsync服务配置文件:vim /etc/rsyncd.conf
配置文件里面内容如下:(此方式为通过匿名登录方式进行文件传输,服务端任何用户都能不需输密码就可进行文件传输)
uid = rsync
gid = rsync
use chroot = no
#安全相关的配置 通常可以设置为no
fake super = yes
#权限的问题 rsync临时提权让你有权限
max connections = 200
#最大连接数默认是4
pid file = /var/run/rsyncd.pid
#进程号
log file = /var/log/rsyncd.log
#指定日志文件 显示错误信息或程序运行信息
# exclude = lost+found/
# transfer logging = yes
timeout = 300
#默认的超时时间 没有传输的时候多长时间断开
port = 873
#rsync 端口号默认是873 也可以改8873
read only = false
#只读 关闭
auth user = rsync_backup
#指定登录用户的名称 用于客户端登录
secrets file = /etc/rsync.passwd
#密码文件的路径
[backup]
#添加backup模块
comment = "Welcome to Azkaban RsyncBackUp"
path = /backup
2.创建一个虚拟用户rsync不添加属组,不允许用户登录:
useradd -s /sbin/nologin -M rsync
3.在etc下创建一个授权用户rsync_backup的密码文件rsync.passwd:
echo "rsync_backup:123456" > /etc/rsync.passwd
4.更改密码文件rsync.passwd的文件权限:
chmod 600 /etc/rsync.passwd
5.在根目录下创建一个名为backup的目录:
mkdir /backup
6.把backup这个目录及目录下内容的属主和属组都改为rsync:
chown -R rsync.rsync /backup/
7.启动rsync服务:
systemctl restart rsyncd
8.设置rsync服务开机自启动:
systemctl enable rsyncd
输完系统反馈:Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
9.测试阶段
9.1.参看rsync服务的状态:
systemctl status rsyncd
出现如图标绿的表示服务正在运行
9.2.查看服务信息:
ps axu|grep rsync
出现如图标红表示正常
实验部署:客户端推送至服务器端实验部署——客户端部署
1.创建一个显示日期的backup目录:
mkdir backup_$(date +%F)
date命令拓展介绍:
date命令的作用是显示或设置系统时间
用法:
date 参数 +日期格式
参数介绍:
-d 表示时间字符串,用于显示指定字符串时间非当前系统时间
日期格式:
%F 表示的格式为 年-月-日
%h 表示的格式为 月份的英文缩写
%H 表示的格式为 24小时制时间 0-23
%G 表示的格式为 年份
%A 表示的格式为 星期几全称
%a 表示的格式为 星期几的缩写
2.在这个目录中创建来个文件
echo 'hahahah' > a.txt
echo 'hahahaheiei' > b.txt
随意创建即可
3.把本地backup_2020-03-26这个目录及以下的内容推送到backup目录中,指定用户为rsync_backup
rsync -avzP /tmp/backup_2020-03-26 rsync_backup@10.0.0.136::backup
4.实验成功显示为:
sending incremental file list
backup_2020-03-26/
backup_2020-03-26/a.txt
8 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=1/3)
backup_2020-03-26/b.txt
12 100% 11.72kB/s 0:00:00 (xfr#2, to-chk=0/3)
sent 218 bytes received 66 bytes 568.00 bytes/sec
total size is 20 speedup is 0.07
遇到报错解决方式
1.当报错显示为链接服务端不成功时:
这条命令在服务端和客户端上都要执行
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #永久关闭防火墙
2.还有其他报错时,可强行关闭服务器上的rsync服务,然后再启动服务:
pkill rsync #强行关闭或停止rsync服务
rsync --daemon # 开启rsync服务
3.如果以上还无法处理报错问题,可重启服务器或检查一下配置文件或命令哪里输入错误了