!!!!建议收藏 Rsync项目实践:数据备份 (文件同步到服务器)

这篇具有很好参考价值的文章主要介绍了!!!!建议收藏 Rsync项目实践:数据备份 (文件同步到服务器)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Rsync项目实践:数据备份

项目需求

基本备份要求

准备三台服务器,两台web服务器、一台rsync备份服务器 主机名分别为web01、web02、backup

主机名			外网IP				
web01		10.0.0.7/24			
web02		10.0.0.8/24
backup		10.0.0.41/24		

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rLf7EhNj-1666099690586)(…/…/图片/image-20221018164708556.png)]

客户端需求

1.客户端每天凌晨01点在服务器本地打包备份(系统配置文件、日志文件、其他目录、应用配置等

文件)

2.客户端备份的数据必须存放至以主机名IP地址当前时间命名的目录中,

例 /backup/nfs_10.0.0.31_2018-09-26

3.客户端最后通过 rsync 推送本地已打包好的备份文件至 backup 服务器

4.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间

服务端需求

1.服务端部署rsync,用于接收客户端推送过来的备份数据

2.服务端需要每天校验客户端推送过来的数据是否完整

3.服务端需要每天校验的结果通知给管理员

4.服务端仅保留3个月的备份数据,其余的全部删除

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

项目需求分析

客户端需求分析

1.每天凌晨01点在服务器本地打包备份

​ 设置定时任务

crontab -e
0 1 * * * sh /root/rsync_client.sh

2.备份文件

系统配置文件
设备挂载配置文件   /etc/fstab		本地内网配置文件	/etc/hosts
系统日志文件
系统安全日志、rsysloglog日志等	/var/log/		
应用程序日志
nginx运行日志	/etc/nginx/conf.d/

3.客户端备份的数据必须存放至以主机名IP地址当前时间命名的目录中,

创建一个目录 以主机名IP地址当前时间命名
获取主机名  hostname
获取主机IP ip add  show ens33 | awk -F'[ /]+' '/inet /{print $3}' 
当前时间  date +%F

4.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间

查找7天以前的内容并删除

find /backup/ -atime +7 -delete

服务端需求分析

1.服务端部署rsync,部署邮箱代理(校验完数据后反馈校验信息至QQ邮箱)


2.服务端需要每天校验客户端推送过来的数据是否完整

把服务器需要备份的文件存放在主机名IP地址当前时间命名的目录中,对目录中的文件进行压缩归档。

服务器和客户端:
使用md5sum命令生成和校验文件的md5值,并把校验的结果重定向到以主机名 IP地址 当前时间 .md5sum命名的文件
把两个文件的值进行对比

3.服务端需要每天校验的结果通知给管理员

把校验结果发送至管理员的邮箱

mail -s "校验的结果" $管理员的邮箱号 < $mail_file

4.服务端仅保留3个月的备份数据,其余的全部删除

删除三个月之前的文件

find /backup/ -atime  +90 -name "*.tar.gz" -delete 

项目设计

编写shell脚本实现

客户端脚本

定义变量
dir=/backup/		#所有服务器的备份目录必须都为/backup
host=$(hostname)	#获取主机名
ip=$(ip add  show ens33 | awk -F'[ /]+' '/inet /{print $3}')	#获取IP地址
date=$(date +%F)	#显示当前日期
bak_dir=$dir$host-$ip-$date		#客户端备份的数据必须存放至以主机名IP地址当前时间命名的目录中
conf_bak="/etc/passwd /etc/fstab /etc/hosts /etc/nginx/conf.d/"		#需要备份的系统配置文件
log_bak="/var/log /etc/nginx/logs/"		#需要备份的日志文件
other_bak="/etc/rsync.password"		#rsync的密码文件
rsync_srv=10.0.0.41		#服务器IP
rsync_user=rsync_user	#用户名
rsync_dir=backup		#目录
rsync_cmd="rsync -avz"	#使用rsync实现远程数据同步 压缩后使用归档模式传输 并以详细模式输出

服务端脚本

定义变量
dir=/backup/	#所有服务器的备份目录必须都为/backup
date=$(date +%F)	#当前日期
mail_file="/root/mail_md5sum_result"	#使用md5校验,把校验结果存放至文件中
adm_email="管理员的邮箱"

项目实施

客户端脚本

vim rsync_client.sh
#!/bin/bash
dir=/backup/
host=$(hostname)
ip=$(ip add  show ens33 | awk -F'[ /]+' '/inet /{print $3}')
date=$(date +%F)
bak_dir=$dir$host-$ip-$date
conf_bak="/etc/passwd /etc/fstab /etc/hosts /etc/nginx/conf.d/"
log_bak="/var/log /etc/nginx/logs/"
other_bak="/etc/rsync.password"
rsync_srv=10.0.0.41
rsync_user=rsync_user
rsync_dir=backup
rsync_cmd="rsync -avz"
export RSYNC_PASSWORD=1

mkdir -p $bak_dir/{confs,logs,scripts,others}	#创建需要备份的文件目录
#把文件复制到指定的目录下	并把结果丢至黑洞
cp -r $conf_bak $bak_dir/confs &>/dev/null	
cp -r $log_bak $bak_dir/logs &>/dev/null
cp -r $other_bak $bak_dir/others &>/dev/null
#在添加文档至归档后删除源文件(打包后删除源文件)
tar czf $bak_dir.tar.gz $bak_dir --remove-files &> /dev/null
#md5sum命令生成和校验文件的md5值,并把校验的结果重定向到以主机名 IP地址 当前时间 .md5sum命名的文件
md5sum $bak_dir.tar.gz > $bak_dir.md5sum

$rsync_cmd $dir $rsync_user@$rsync_srv::$rsync_dir &>/dev/null

#本地资源保留7天
find $dir -atime +7 -delete &> /dev/null

客户端计划任务

crontab -e
0 1 * * * sh /root/rsync_client.sh

服务端脚本

vim rsync_server.sh
#!/bin/bash
dir=/backup/
date=$(date +%F)
mail_file="/root/mail_md5sum_result"
adm_email="你自己的邮箱"

find $dir -name "*$date.md5sum" | xargs md5sum -c > $mail_file
mail -s "rsync_result" $adm_email < $mail_file &> /dev/null

#校验信息保留三天
find $dir -atime +3 -name "*.md5sum" -delete 

#备份数据库三个月
find $dir -atime  +90 -name "*.tar.gz" -delete 

服务端计划任务

crontab -e
0 3 * * * sh /root/rsync_server.sh

项目验收

在客户端10.0.0.7上运行脚本

在客户端10.0.0.8上运行脚本

在服务器上运行脚本

设置邮箱的文件

项目中出现的问题汇总

使用什么样的校验方式 diff 还是md5

Linux diff命令用于比较文件的差异。diff以逐行的方式,比较文本文件的异同处。特别是比较两个版本不同的文件,如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。比较文件夹diff,可以直接使用diff命令

md5sum 用于计算和校验文件的MD5值

MD5,是一种单向加密,它的加密不可逆,它将任意长度的字符串,经过算法计算后生成固定长度的数据,一般为16位表示。

MD5的用途:
    1. 消息完整性:每份数据生成的MD5码不同,所以可以吧MD5码和数据一块发送,在对端使用MD5加密对数据加密在与接收的MD5码做对比,保证数据的正确性。
    2. 安全访问认证:常被用到 mysql和传递用户账户信息和密码,从用户端发送到服务器的只是一段128位的摘要,服务器拿到后直接将其存入数据库,下次登录只需与服务器的密文进行对比即可,这样保护了用户的信息,即便是后台人员也无法去获取用户的账户密码。
    3. 数字签名
其他加密算法
非对称加密:包括RSA DSA RCC,非对称加密是相比对称加密而言的。
对称加密:包括AES,DES,3DES
对称加密与解密使用的是同样的密钥,但由于需要将密钥在网络传输,所以安全性不高
非对称加密使用了一对密钥,公钥与私钥,把以安全性高,但加密与解密速度慢
解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通

如何把校验结果以邮箱的形式发给管理者

安装邮件服务

yum install -y mailx

vim /etc/mail.rc

set from=2414857437@qq.com    (自己的QQ邮箱)
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=2414857437@qq.com   (自己的QQ邮箱)
set smtp-auth-password=XXXX  (自己的邮箱IPMPA码)
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/

使用echo “邮件正文” | mail -s 邮件标题 邮箱文章来源地址https://www.toymoban.com/news/detail-404849.html

到了这里,关于!!!!建议收藏 Rsync项目实践:数据备份 (文件同步到服务器)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【云原生 | Docker】Linux 定时自动化备份Mysql数据到本地 & Windows 最佳实践,确定不来看看?

    【云原生 | Docker】Linux 定时自动化备份Mysql数据到本地 & Windows 最佳实践,确定不来看看?

    🤵‍♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍 🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能硬件(虽然硬件还没开始玩,但一直

    2024年02月02日
    浏览(14)
  • .NET下数据库的负载均衡“经典方案”(大项目必备,建议收藏)

    .NET下数据库的负载均衡“经典方案”(大项目必备,建议收藏)

    【前言】 本文讲述的“数据库负载均衡”方案,为市面上最经典(没有之一),由.NET界 骨灰级 大佬推出。采用该技术方案的大公司,一年省下了几个亿的支出。   【正文】 支持.Net Core(2.0及以上)  与 .Net Framework(4.5及以上) 可以部署在Docker, Windows, Linux, Mac。 为了演示

    2024年02月15日
    浏览(11)
  • 【MySQL】数据备份(导出数据 / 导入数据)

    【MySQL】数据备份(导出数据 / 导入数据)

     SELECT...INTO OUTFILE 是 MySQL 用于导出数据的语句,它允许将查询结果保存到指定的文件中。 该语句的基本语法如下:   column1, column2, ... :要导出的列名。 INTO OUTFILE \\\'file_path\\\' :指定导出数据时要保存到的文件路径。 FIELDS TERMINATED BY \\\'field_separator\\\' :指定字段之间的分隔符,默认

    2024年02月12日
    浏览(11)
  • 微信新旧手机聊天数据备份迁移&pc端微信数据备份迁移至手机

    微信新旧手机聊天数据备份迁移&pc端微信数据备份迁移至手机

    我相信,微信这个app已经深入大家的工作生活了,微信的数据日积月累肯定是相当大的,而我们的电子产品(手机)的更新迭代相当频繁,新的手机如何将旧手机的微信数据迁移过来呢?阅读这篇博文,你将深入了解2种迁移方案,以后妈妈再也不怕我新手机没有微信聊天数据

    2024年04月15日
    浏览(12)
  • 小米路由器数据备份Mac备份使用教程

    小米的路由已经正式开放购买,支持 Mac OS 的 Time Machine 备份。对于苹果 Mac 电脑用户而言,可以借助小米的存储服务器功能,把电脑中的数据通过网络备份到小米路由器上。下面简单介绍下怎么在 Mac 上用小米路由器来备份的操作方法。 首先当然是要让自己的 Mac 电脑接入小

    2024年02月07日
    浏览(12)
  • 苹果手机怎么备份所有数据?2023年iPhone 15数据备份常用的3种方法!

    苹果手机怎么备份所有数据?2023年iPhone 15数据备份常用的3种方法!

    当苹果手机需要进行刷机、恢复出厂设置、降级iOS系统等操作时,我们需要将自己的 iPhone数据提前进行备份 。 特别是在苹果发布新iOS系统时,总有一些小伙伴因为升降级系统,而导致了 重要数据的丢失 。 iPhone中储存着重要的照片、通讯录、文件等数据,建议 定期进行数据

    2024年02月07日
    浏览(12)
  • sql数据库怎么备份,sql 实时备份

    sql数据库怎么备份,sql 实时备份

    在当今互联网时代,数据已经成为企业的核心资产。然而,数据的安全性和完整性面临硬件问题、软件故障、人工操作错误等各种威胁。为了保证数据的安全,实时备份已经成为公司必须采取的重要措施之一。下面我们就重点介绍SQL实时备份的重要实施方法。 SQL实时备份的必

    2024年02月10日
    浏览(11)
  • iphone备份用什么软件?好用的苹果数据备份工具推荐!

    iphone备份用什么软件?好用的苹果数据备份工具推荐!

    众所周知,如果要将iPhone的数据跟电脑进行传输备份的话,我们需要用到iTunes这个pc工具。但是对于iTunes,不少人都反映这个软件比较难用,用不习惯。于是,顺应时代命运的iPhone备份同步工具就出现了。那iphone备份用什么软件比较好? 今天小编就给大家介绍一款非常好用又

    2024年02月14日
    浏览(12)
  • DigitalOcean 数据备份技术架构升级,并提供每日自动备份功能

    据统计,目前全有超过60%的中小企业数据存储在公有云中。但是,数据量和生成数据的速度都在以惊人的速度增长,这意味着中小企业比以前更需要防范数据中断带来的风险。 备份是每个企业数据保护策略的关键一环。DigitalOcean 备份是由 Droplet (DigitalOcean 的 VPS 产品)磁盘

    2024年03月21日
    浏览(13)
  • MySQL 数据备份和数据恢复

    MySQL 数据备份和数据恢复

    目录 一、数据备份 1、概述 2、MySQLdump命令备份 1)备份单个数据库中的所有表 2) 备份数据中某个或多个表 3) 备份所有数据库 4)备份多个库 5) 只备份一个表或多个表结构 二、数据恢复 三、数据备份与恢复应用 1、概述 数据备份是数据库管理员非常重要的工作之一。系统意

    2024年02月11日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包