搭建linux文件备份服务器,Linux-Rsync项目实战(详细) 备份全网服务器数据生产架构方案...

要求如下:

每天晚上0点 在NFS服务器A(rsync客户端)上打包备份网站程序目录(/var/www/html)

通过rsync命令推送到服务器B上备份保存

具体要求:

1.NFS服务器 和 备份服务器 他们的备份目录都是backup

2.NFS服务器站点假定为/var/www/html

3.NFS服务器本地保留7天的备份

4.备份服务器上检查备份结果是否正常 把每天的结果发送给管理员(并不需要邮箱软件) sendmail

5.备份服务器上每周六的数据都保留 其他的仅保留180天

1、首先部署NFS,将/var/www/html 目录共享给web管理员(webadmin)

66665cb3cbc4170b047d0df422a0d9af.png

a593e7b3cd12327d88d35bcb9f448cf8.png

挂载成功:(NFS部署成功)

153c22a1dd0fbc558d98dcbfd0eab696.png

2、在备份服务器和NFS服务器上创建备份目录

4bba5d7a6a05d340dc4e78344c70288c.png

462568bcde69658dce512484736f80ba.png

3、NFSserver的/var/www/html打包压缩同步到/backup目录,每次备份的打包备份的文件只保留七天:

tar -zchf /backup/html.$(date +%F%w -d '-1day').tar.gz /var/www/html/

3860c080a359ac90e9b3d422c93b342f.png

注释:tar h参数是将符号链接文件视作普通文件或目录,从而打包的是源文件,%F 完整日期格式 %w 一星期中的第几日(0-6),0 代表周一 ,$读取具体的天数作为备份文件名,这样做的目的是为了不重名,-d ‘-1 day’ 如果是今天备份的今天也算一天所以要去掉

find /backup -name “.tar.gz” –mtime +7 -type f |xargs rm –f

注释:–mtime 参数:最后一次修改发生在n天以内,距离当前时间为n24小时以内

查找/backup 目录下搜后缀为.tar.gz的创建时间达到7天的文件,将此文件删除,xargs命令是给其他命令传递参数的一个过滤器,换行和空白将被空格取代。

4、在将备份目录推送之前,加指纹信息,方便服务端的验证,前提是创建指纹的客户端路径和服务端路径相同才可以

为什么要添加指纹:为了生成日志让管理员更直观的查看备份的结果

[root@node1 backup]# find /backup/ -name '.tar.gz' |xargs md5sum >/backup/check.txt

[root@node1 backup]# md5sum -c check.txt

d52511af7ba7e3d7c9afa74e9677b599.png

是不是直观的看到了 OK

5、将已经备份好压缩文件推送到rsync备份服务器上,推送完整的数据,到模块指定的目录下

rsync -avz /backup/ rsync_backup@backup.team.cn::backup --password-file=/etc/rsync.password

0a0a354a42507eae7d828f688f19ac80.png

备份服务器上查看推送:(推送成功)

f805ef84867e0920018d2b1bbec39630.png

自动化:在客户机上测试了命令后,需要编写一个脚本,实现自动化运维!

脚本如下:

a347054dcbc5b408b59073dc4536488f.png

配置周期作业:(每晚0点自动执行脚本进行备份)

Crontab –e //编写周期作业

0b68641b54f1f2427d1fb2a5c25535cb.png

接下来是备份服务器端:

1、 备份服务器上[每周六的数据都保留],其他备份仅保留180天备份

find /backup/ -name ”.tar.gz” !”6.tar.gz” -mtime +180 –type f |xargs rm –rf

注释:将所有后缀为不为6.tar.gz(因为前面的备份文件命名规则是%F%w 所以6就表示每个星期六) 并且文件存在天数大于等于180天的备份文件删除掉。

2、 备份服务器上检查备份结果是否正常,并将每天的备份结果发给管理员信箱

(1)首先将本地的send-mail配置文件修改为all:

15ad6d5748fcd9873ff99be05361cfb8.png

(2)重启邮件服务

systemctl restart postfix

(3)发送邮件给管理员

-s 表示邮件标题

root为接受的用户 @ 后面可跟ip地址或者域名

如果发给qq邮箱格式为: root@2235590965.qq.com

测试成功:

db792f5730875ade0c389b6f443dfac3.png

3、 最后在备份服务器上实现自动化运维:

(1) 编写自动化脚本:

26ccabda4e7679275f7509ff7fd947ce.png

b9b0e703f6a5c813c3fde0794097fda7.png

(2)配置周期作业:

crontab -e

f7fe2b83509b6d7acf0f8916d05d420e.png

总结此次试验:

遇到的问题:date +%F%w -d '-1day' 命名文件出现了无法正确获取时间

解决方法:在多次测试后终于发现需要加$符号来读取这段函数获取的时间。

如果rsync的配置文件不会做,请看我上一篇的博客,有错的地方还请点评指点,在此感谢!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值