003 rsync客户端与服务端小脚本

rsync备份案例

rsync本地同步

客户端:
1.客户端提前准备存放的备份的⽬录,⽬录规则如下:/backup/nfs_172.16.1.31_2018-09-02
2.客户端在本地打包备份(系统配置⽂件、应⽤配置等)拷⻉⾄/backup/nfs_172.16.1.31_2018-
09-02
3.客户端最后将备份的数据进⾏推送⾄备份服务器
4.客户端每天凌晨1点定时执⾏该脚本
5.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间



服务端需求:
1.服务端部署rsync,⽤于接收客户端推送过来的备份数据
2.服务端需要每天校验客户端推送过来的数据是否完整
3.服务端需要每天校验的结果通知给管理员
4.服务端仅保留6个⽉的备份数据,其余的全部删除
#准备服务端,分析脚本逻辑
#创建目录
mkdir /backup/$(hostname)_$(hostname -I | awk '{print $2}')_$(date +%F)

#打包目录
tar zcf /backup/$(hostname)_$(hostname -I | awk '{print $2}')_$(date +%F)/conf.tar.gz /var/log/messages

#推送文件
rsync -avz /backup/ rsync_backup@*.*.*.*::backup
#写成脚本
#!/bin/bash
#baimo
#用于备份

DIR=/backup
HOSTNAME=$(hostname)
IP=$(hostname -I | awk '{print $2}')
DATE=$(date +%F)
SRC=${DIR}/${HOSTNAME}_${IP}_${DATE}

#创建备份目录
mkdir $SRC -p

#打包文件
cd /var
tar zcf $SRC/conf.tar.gz ./log/messages

#生成校验码
md5sum $SRC/conf.tar.gz > $SRC/flag

#推送文件
export RSYNC_PASSWARD=123456
rsync -az $DIR/ rsync_backup@192.168.15.101::backup

#删除七天前的数据
find $DIR/ -type d -mtime +7 | xargs rm -rf

#定时任务
crontab -e
0 1 * * * /bin/bash /root/client.sh

服务端备份案例

#/etc/mail.rc模板
set from=xxx@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=xxx@qq.com
set smtp-auth-password=#校验值
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
[root@backup ~]# yum install mailx -y
#配置/etc/mail.rc文件
[root@backup ~]# mail -s "校验结果" xxx@qq.com < ceshi.txt
#脚本

#!/bin/bash
#baimo
#用于备份
DIR=/backup
HOSTNAME=$(hostname)
IP=$(hostname -I | awk '{print $2}')
DATE=$(date +%F)
SRC=${DIR}/${HOSTNAME}_${IP}_${DATE}

#校验文件
md5sum -c $DIR/*_$DATE/flag > $DIR/result.txt

#将校验结果发送给管理员邮箱
mail -s "$DATE备份文件 校验的结果" 1466705884@qq.com < $DIR/result.txt

#删除6个月之前的数据
find $DIR/ -type d -mtime +180 | xargs rm -rf
#服务端脚本加入定时任务
 crontab -e
 0 7 * * * /bin/bash /root/server.sh &> /dev/null

Rsync结合inotify

#安装
[root@web1 ~]# yum install inotify-tools -y
#参数
-m 持续监控
-r 递归
-q 静默,仅打印时间信息
--timefmt 指定输出时间格式
--format 指定事件输出格式
%Xe 事件
%w 目录
%f 文件
-e 指定监控的事件
access 访问
modify 内容修改
attrib 属性修改
close_write 修改真实文件内容
open 打开
create 创建
delete 删除
umount 卸载
#测试
/usr/bin/inotifywait  -mrq  --format '%Xe  %w  %f' -e create,modify,delete,attrib,close_write  /backup

[root@backup ~]# vim rsyn-inotify.sh

#!/bin/bash
#实时推送备份文件脚本

export RSYNC_PASSWORD=123

dir=/var/log/messages   #监控的文件
inotifywait -mrq --format '%Xe %w %f' -e create,modify,delete,attrib,close_write ${dir} | while read line; do bash /root/script/c_backup.sh ; done &>/dev/null &

posted @ 2021-03-26 21:29  BaiM0  阅读(111)  评论(0编辑  收藏  举报