目录
环境准备
192.168.22.133 | 服务端 |
192.168.22.134 | 客户端 |
1、关闭防火墙
2、关闭Selinux
systemctl disable --now firewalld
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/conf
3、服务端和客户端安装 rsync
yum install -y rsync
实验要求:
客户端:
1、准备存放备份文件的目录; 规则: /backup/主机名_IP地址_时间戳
2、把备份文件打包到 目录下
3、每天凌晨1点定时执行脚本
4、本地保存7天的数据
服务端:
1、部署rsync服务器
2、检验客户端推送的数据是否完整
3、把检验结果给管理员
4、保留6个月的备份数据,其余都删除
注意:所有的服务器备份目录都是 /backup
服务端基础配置
首先安装rsync,然后再配置虚拟用户,可以给客户端提供远程同步
1、安装rsync
[root@server ~]# yum install -y rsync
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.bupt.edu.cn
* extras: mirrors.bupt.edu.cn
* updates: mirrors.bupt.edu.cn
软件包 rsync-3.1.2-11.el7_9.x86_64 已安装并且是最新版本
无须任何处理
2、修改配置文件
[root@server ~]# vim /etc/rsyncd.conf
uid = rsync # 启动rsync的用户
gid = rsync # 用户组
port = 873 # 端口
fake super = yes # 保持文件的原始属性
use chroot = no # 允许切换目录
max connection = 4 # 最大连接数
pid file = /var/run/rsyncd.pid # pid 保存路径
timeout = 900 # 超时时间
read only = no # 只读
ignore errors # 忽略错误
list = false # 不列出
auth users = rsync_backup # 虚拟用户
secrets file = /etc/rsync.passwd # 密码文件
[backup] # 虚拟路径
comment = backup # 描述
path = /backup # 真实路径
3、创建用户和目录
[root@server ~]# useradd -M -s /sbin/nologin rsync
[root@server ~]# mkdir /backup
[root@server ~]# chown -R rsync.rsync /backup/
[root@server ~]# cat /etc/rsync.passwd
rsync_backup:123
[root@server ~]#chmod 600 /etc/rsync.passwd
4、开启rsyncd
[root@server ~]# systemctl start rsyncd
[root@server ~]# netstat -tunlp | grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 42962/rsync
tcp6 0 0 :::873 :::* LISTEN 42962/rsync
服务端配置完成后,在客户端测试一下是否能够同步文件
rsync同步没问题,就进入下一步
客户端
客户端:
1、准备存放备份文件的目录; 规则: /backup/主机名_IP地址_时间戳
2、把备份文件打包到 目录下
3、每天凌晨1点定时执行脚本
4、本地保存7天的数据
分析:
使用脚本部署
1、先准备一个 备份文件的目录,在脚本里面可以用变量
2、cp 复制需要备份的文件到 目录下
3、保存7天的数据可以使用 find 命令
4、最后就是 定时任务
#!/bin/bash
# 1、设置变量
SRC=/backup
HOST=`hostname`
IPADDR=`ifconfig | grep netmask | head -n 1 | awk '{print $2}'`
DATE=`date +%F`
DEST=${SRC}/${HOST}_${IPADDR}_${DATE}
# 2、创建目录,复制备份文件
# [ -d ] 判断是否是一个目录
[ -d $DEST ] || /usr/bin/mkdir -p $DEST
# [ -f ] 判断是否是一个文件
[ -f $DEST/etc/fstab ] || /usr/bin/cp -ar /etc/fstab $DEST
cd / && \
[ -f $DEST/sys.tar.gz ] || /usr/bin/tar -czf $DEST/sys.tar.gz /etc/fstab
[ -f $DEST/result_$DATE ] || md5sum $DEST/sys.tar.gz > $DEST/result_$IPADDR\_$DATE
# 3、同步文件
# 写入变量中,同步就不需要输入密码
export RSYNC_PASSWORD=123
rsync -avz $DEST rsync_backup@192.168.22.133::backup
# 4、保存7天数据
find $DEST -type d -mtime +7 | xargs rm -rf
服务端
邮件配置
[root@server ~]# yum install -y mailx
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.bupt.edu.cn
* extras: mirrors.bupt.edu.cn
* updates: mirrors.bupt.edu.cn
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
软件包 mailx-12.5-19.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@server ~]# vim /etc/mail.rc
set from=1910691335@qq.com # 从哪个邮箱发送
set smtp=smtp.qq.com
set smtp-auth-user=1910691335@qq.com # 真实邮箱
set smtp-auth-password=hplitgllobbtieda # 密码
set smtp-auth=login
#!/bin/bash
#1、设置变量
SRC=/backup
DATE=`date +%F`
# 2、md5sum -c 校验
md5sum -c $SRC/*_$DATE/flag_*_$DATE > $SRC/result_$DATE
# 3、发送邮件
mail -s '123' 2112230285@qq.com < $SRC/result_$DATE