加两个需求:
1.增加一个模块
2.每个模块不同的用户名

步骤:

1.修改配置文件/etc/rsyncd.conf
[backup]                               
comment = commit      
path = /backup  
auth users=rsync_backup1           
secrets file=/etc/rsync1.passwd   
[data]                               
comment = commit      
path = /data 
auth users=rsync_backup2           
secrets file=/etc/rsync2.passwd 

2.增加目录
mkdir /data
chown -R rsync.rsync /data

3.增加相应的认证文件
echo 'rsync_backup1:1' > /etc/rsync1.passwd
echo 'rsync_backup2:1' > /etc/rsync2.passwd
chmod 600 /etc/rsync?.passwd 

4.重启服务生效

 

5.Rsync备份案例
已知2台服务器主机分别为backup、nfs,主机信息见下表

角色        外网IP(NAT)     内网IP(LAN)       主机名
Rsync服务端 eth0:10.0.1.51  eth1:172.16.1.51  backup 
Rsync客户端 eth0:10.0.1.41  eth1:172.16.1.41  nfs

客户端要求:
1.客户端每天凌晨01点在服务器本地打包备份(系统配置文件、日志文件、其他目录、应用配置等文件)
2.客户端备份的数据必须存放至以主机名IP地址当前时间命名的目录中,例/backup/nfs_172.16.1.41_2020-01-20
3.客户端最后通过rsync推送本地打包好的备份文件至backup服务器
4.客户端服务器本地保留最近七天的数据,避免浪费磁盘空间

分析思路:

1.备份谁
系统配置文件:
    /etc/fstab /etc/hosts /var/spool/cron/root
日志文件:
    /var/log/messages /var/log/secure /var/log/cron
服务配置文件:
    /etc/rsyncd.conf    

2.备份的要求
/backup/nfs_172.16.1.41_2020-01-20

获取的信息有:
主机名:hostname
IP地址:ifconfig eth1 | awk 'NR==2{print $2}'hostname -I | awk '{print $2}'
时间:date +%F
目录名:/backup/$(hostname)_$(hostname -I | awk '{print $2}')_$(date +%F)

注意;建议使用变量来优化命令

 

优化后的客户端脚本代码

#!/bin/bash

#1.定义变量
Host=$(hostname)
IP=$(ifconfig eth1 | awk 'NR==2{print $2}')
Date=$(date +%F)
BackupDir=/backup
Dest=${BackupDir}/${Host}_${IP}_${Date}

#2.创建备份目录
mkdir -p $Dest

#3.收集需要备份的文件
#sysconf backup
tar czf $Dest/sysconf.tar.gz /etc/fstab /etc/hosts /var/spool/cron/root &>/dev/null
#logs backup
tar czf $Dest/log.tar.gz /var/log/messages /var/log/secure /var/log/cron &>/dev/null
#svrconf backup
tar czf $Dest/svrconf.tar.gz /etc/rsyncd.conf &>/dev/null

#4.校验
md5sum $Dest/* > $Dest/backup_check__$Date

#5.将备份目录推送到服务端
Rsync_IP=172.16.1.51
Rsync_User=rsync_backup
Rsync_Module=backup
export RSYNC_PASSWORD=1
rsync -avz $Dest $Rsync_User@$Rsync_IP::$Rsync_Module

#6.保留7天以内的备份数据
find $BackupDir -type d -mtime +7 | xargs rm -rf

问题:
1.文件没有归档压缩
2.没校验


服务端要求:

1.服务端部署rsync,用于接收客户端推送过来的备份数据
2.服务端需要每天校验客户端推送过来的数据是否完整
3.服务端需要每天校验的结果通知给管理员
4.服务端仅保留6个月的备份数据,其余全部删除

注意:所有服务器的备份目录必须都为/backup

1.把服务搭建起来
2.检查校验结果,并保存到指定的文件中
md5sum -c /backup/*_$(date +%F)/backup_check* > /backup/*_$(date +%F)/result_$(date +%F).txt
3.通过邮件发送给管理员
[root@backup ~]# yum install mailx -y
[root@backup ~]# vim /etc/mail.rc
set from=1445xxxxx@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=144xxxxx@qq.com
set smtp-auth-password=验证授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb

mail -s "test" 144xxxxx@qq.com </etc/hosts