03.@Rsync监控数据实时同步


1、rsync的备份方式

# push [root@backup ~]# mkdir /backup [root@backup ~]# ll total 8 -rwxr-xr-x 1 root root 401 Apr 16 18:22 a.sh [root@backup ~]# rsync -a a.sh /backup/ [root@backup ~]# ll /backup/ total 4 -rwxr-xr-x 1 root root 401 Apr 16 18:22 a.sh # pull [root@backup ~]# cd /mnt/ [root@backup mnt]# ll total 12 [root@backup mnt]# rsync -a /backup/a.sh ./ [root@backup mnt]# ll total 16 -rwxr-xr-x 1 root root 401 Apr 16 18:22 a.sh

2、rsync传输方式

1>本地传输 2>远程传输 3>守护进程模式
基本格式如下所示: Access via rsync daemon: Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST] rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST] Push: rsync [OPTION...] SRC... [USER@]HOST::DEST rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST #语法: rsync 【OPTION】... 【USER@】HOST:: SRC 【DEST】 #示例 【rootewebel ~】# rsync -avz rsync_backup@172.16.1.41:: backup /tmp/

1|0案例

客户端: 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个⽉的备份数据,其余的全部删除

1|1简约版

  • 客户端
[root@nfs backup]# cat deploy-client.sh #!/bin/bash # /backup/nfs_172.16.1.31_2021-04-19 mkdir -pv /backup/$(hostname)_`hostname -I | awk '{print $2}'`_`date +%F` # /etc/hosts /etc/resolv.conf cd /backup/$(hostname)_`hostname -I | awk '{print $2}'`_`date +%F` tar -cvzf system_file.tar.gz /etc/hosts /etc/resolv.conf # 记录MD5哈希值 md5sum system_file.tar.gz > md5sum.log rsync -avz /backup/$(hostname)_`hostname -I | awk '{print $2}'`_`date +%F` egon@backup::yangge # 00 01 * * * deploy.sh find /backup -mtime +7 -exec rm -rf {} \;
  • 服务器端
[root@backup backup]# cat deploy-server.sh #!/bin/bash cd /backup/nfs_172.16.1.31_`date +%F` md5sum -c md5sum.log # 发送邮件 mail -s '测试文件' alvincy@qq.com<md5sum.log find /backup -mtime +180 -exec rm -rf {} \;

1|2文艺青年版

  • 客户端
#!/bin/bash ROOT_DIRECTORY=/backup HOSTNAME=$(hostname) LOCALOST=`hostname -I | awk '{print $2}'` DATE=`date +%F` DIR=$ROOT_DIRECTORY/${HOSTNAME}_${LOCALOST}_${DATE} mkdir -pv $DIR cd $DIR tar -cvzf system_file.tar.gz /var/log/messages # 记录MD5哈希值 md5sum system_file.tar.gz > md5sum.log rsync -avz $DIR egon@backup::yangge # 00 01 * * * deploy.sh find /backup -mtime +7 -exec rm -rf {} \;
  • 服务器端
#!/bin/bash ROOT_DIRECTORY=/backup CLIENT_HOSTNAME=nfs CLIENT_HOST=`ping -c1 ${CLIENT_HOSTNAME} | awk 'NR==1{print $2}'` DATE=`date +%F` cd ${ROOT_DIRECTORY}/${CLIENT_HOSTNAME}_${CLIENT_HOST}_${DATE} md5sum -c md5sum.log # 发送邮件 mail -s '测试文件' alvincy@qq.com<md5sum.log find /backup -mtime +180 -exec rm -rf {} \;

1|3文艺青年升级版

  • 客户端
#!/bin/bash ROOT_DIRECTORY=/backup HOSTNAME=$(hostname) LOCALOST=`hostname -I | awk '{print $2}'` DATE=`date +%F` DIR=$ROOT_DIRECTORY/${HOSTNAME}_${LOCALOST}_${DATE} [ -f $DIR ] || mkdir -pv $DIR cd $DIR [ -d system_file.tar.gz ] || tar -cvzf system_file.tar.gz /var/log/messages # 记录MD5哈希值 [ -d md5sum.log ] || md5sum system_file.tar.gz > md5sum.log rsync -avz $DIR egon@backup::yangge # 00 01 * * * deploy.sh find /backup -mtime +7 -exec rm -rf {} \;

2|0实时监控同步数据的脚本

监控数据源是否有变化。

1、安装

[root@nfs yum.repos.d]# cat epel.repo [epel] name='epel repo' baseurl=https://repo.huaweicloud.com/epel/7/x86_64/ gpgcheck=0 [root@nfs yum.repos.d]# yum install -y inotify-tools

2、测试监控

inotifywait -mrq --format '%Xe %w %f' -e create,modify,delete,attrib,close_write /var/log/messages

2|1简约版

inotifywait -mrq --format '%Xe %w %f' -e create,modify,delete,attrib,close_write /var/log/messages | while read line; do /backup/deploy-client-bak.sh ; done

2|2文艺青年版

[root@nfs ~]# nohup ./inotify.sh & [root@nfs ~]# cat inotify.sh #!/bin/bash export RSYNC_PASSWORD=1 inotifywait -mrq --format '%Xe %w %f' -e create,modify,delete,attrib,close_write /var/log/messages | while read line; do /backup/deploy-client-bak.sh ; done

__EOF__

本文作者ଲ小何才露煎煎饺
本文链接https://www.cnblogs.com/zeny/p/15121582.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ଲ小何才露煎煎饺  阅读(43)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示