码迷,mamicode.com
首页 > 其他好文 > 详细

公司实现全网备份项目:(rsync+定时任务)

时间:2019-05-22 22:26:25      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:dao   time   ati   ima   一个   命名   linux   mtime   自带   

企业案例:rsync实战:
 web01  10.0.0.7 
 backup  10.0.0.41 
某公司里有一台Web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他机器上做一个周期性定时备份。要求如下:

每天晚上12点整在Web服务器A(web01 )上打包备份网站程序目录并通过rsync命令推送到服务器B(backup)上备份保留
(备份思路可以是先在本地按日期打包,然后再利用rsync推到备份服务器上)。
rsync守护进程模式 
定时任务 (脚本)

具体要求如下:
1)Web服务器A和备份服务器B的备份目录必须都为/backup。 #扩展备份到/backup下以ip地址命名的目录下
2)Web服务器站点目录假定为(/var/www/html)。
3)Web服务器本地仅保留7天内的备份。

4)备份服务器上每周六的数据都保留,其他备份仅保留180天备份。
5)备份服务器上检查备份结果是否正常(备份内容变?),并将每天的备份结果发给管理员信箱。**

web应用服务器上的操作:

1、 先在命令行测试脚本里面的命令,若没有问题再拷贝和粘贴到脚本里面

[root@web01 ~]# cat /server/scripts/bak.sh
#!/bin/bash
IP=$(hostname -I|awk  ‘{print $NF}‘)
HOSTNAME=$(hostname)
#mkdir dir
mkdir -p /backup/$IP
mkdir -p /var/www/html
#tar
tar zcf /backup/$IP/conf-$(date +%F-%w).tar.gz  /etc/ /var/www/html
#make md5
find /backup/ -type f -name "*.tar.gz"|xargs md5sum >/backup/$IP/web01.md5
#push
rsync -avz /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwd
#del 7 day gao files
find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f

2、测试脚本:

[root@web01 ~]# sh  /server/scripts/bak.sh
tar: Removing leading `/‘ from member names
sending incremental file list
172.16.1.7/conf-2019-05-21-2.tar.gz
172.16.1.7/web01.md5

sent 3,498 bytes  received 19,269 bytes  45,534.00 bytes/sec
total size is 10,213,793  speedup is 448.62
3、写入定时任务:
[root@web01 ~]# crontab -l
#backup
* * * * *  /bin/sh    /server/scripts/bak.sh >/dev/null 2>&1
4、测试定时任务
(先按照每分钟测试,若没有问题再更改实际需要备份的时间)

backup服务器端:

1、命令行测试

[root@backup ~]# find /backup/ -type f -name "*.tar.gz" ! -name  "*-6.tar.gz" -mtime +180 | xargs rm 
rm: missing operand
Try ‘rm --help‘ for more information.---找不到文件,正常,因为没有,命令没有问题
[root@backup ~]# tree /backup
/backup
└── 172.16.1.7
    ├── conf-2019-05-21-2.tar.gz
    └── web01.md5

1 directory, 2 files
 [root@backup~]# md5sum -c /backup/*/*.md5 
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK

2、 命令行测试没问题,粘贴进脚本文件

[root@backup ~]# cat /server/scripts/check.sh
#!/bin/bash
#check 
md5sum -c /backup/*/*.md5 >/backup/result.txt
#find /backup/  -type  f -name "*.md5"|xargs md5sum -c
#del 180 ago
find /backup/ -type f -name "*.tar.gz" ! -name  "*-6.tar.gz" -mtime +180 | xargs rm 
 mail -s "server is GOOD " lidao996@163.com < /backup/result.txt

3、 测试脚本

[root@backup ~]# sh /server/scripts/check.sh

4、 设置发邮件给运维管理人员

1) 启动系统自带的邮件服务

[root@backup ~]# systemctl restart postfix.service 
[root@backup ~]# 
[root@backup ~]# systemctl is-active postfix.service 
active
[root@backup ~]# systemctl is-enabled  postfix.service 
enabled
[root@web01 ~]# systemctl  status   postfix.service 
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-05-21 15:13:43 CST; 2h 36min ago
  Process: 7905 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
  Process: 7903 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS

2)配置163邮箱---设置--启用pop3和smtp,并设置授权码

3)vim /etc/mail.rc

最后写入一行:

set from=xiaxia_5321@163.com smtp=smtp.163.com smtp-auth-user=xiaxia_5321
smtp-auth-password=shani123 (授权码) smtp-auth=login

重启一下服务
systemctl restart postfix.service
3)发从邮件:
mail -s "I love Linux " 840762911@qq.com &lt;/backup/result.txt

技术图片

配置完成!!!运维工程师可以通过邮件,微信,电话等等工具获取服务器相关故障报警信息。

公司实现全网备份项目:(rsync+定时任务)

标签:dao   time   ati   ima   一个   命名   linux   mtime   自带   

原文地址:https://blog.51cto.com/xiyuxingxia/2398761

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!