linux定时备份到邮箱,周期性定时备份及邮件通知管理员

周期性定时备份:

每天晚上00点整在Web服务器A上打包备份网站程序目录并通过rsync命令推送到服务器B上备份保留。

具体要求如下:

1、Web服务器A和备份服务器B的备份目录必须都为backup

2、Web服务器站点目录为(/var/www/html)

3、Web服务器仅保留7天内的备份

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

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

#rsync服务端和客户端配置自动化配置脚本https://blog.51cto.com/ygtq666/2061975

#简单安装NFS服务端和客户端https://blog.51cto.com/ygtq666/2063025

#1、实现推送(A端推送到B端),关于rsync和NFS服务器的就可以查看我的前2篇博文

[root@nfs01 ~]# cd /backup/

[root@nfs01 backup]# ls #检查nfs客户端backup目录里面的文件

html_2018-02-02_00.gz.tar html_2018-02-02_01.gz.tar old.txt

[root@nfs01 backup]# rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password #推送到backup服务端

sending incremental file list

./

html_2018-02-02_00.gz.tar

html_2018-02-02_01.gz.tar

old.txt

sent 529 bytes received 68 bytes 1194.00 bytes/sec

total size is 322 speedup is 0.54

[root@backup backup]# ls #backup服务器检查是否推送到位

html_2018-02-02_00.gz.tar html_2018-02-02_01.gz.tar old.txt

#2、打包、推送、删除、定时任务脚本(A端)

IP=$(ifconfig eth1|awk -F "[ :]+" 'NR==2{print $4}')

Path=/backup

if [ $(date +%w) -eq 0 ]

then

Time="week_$(date +%F_%w -d "-1day")"

else

Time=$(date +%F -d "-1day")

fi

mkdir $Path/$IP/ -p

cd / &&\

tar zcfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html app/logs &&\

md5sum $Path/$IP/backup_$Time.tar.gz >$Path/$IP/flag_$Time.log &&\

rsync -az $Path/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password &&\

find /backup/ -type f -mtime +7 \( -name "*.log" -o -name "*.tar.gz" \) |xargs rm -f

脚本理解:

IP=$(ifconfig eth1|awk -F "[ :]+" 'NR==2{print $4}')

取出IP作为变量表示

Path=/backup

backup目录作为一个变量

Time=$(date +%F)

时间段做一个变量

mkdir $Path/$IP/ -p

脚本开始前创建backup目录里面创建一个IP地址目录

cd / && \

tar zcfh $Path/$IP/backup$Time.gz.tar var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html app/logs && \

#变量表示$Path表示#/backup目录,$IP表示IP地址的目录,$Time表示时间段

把var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html app/logs这4个目录加上时间段打包到/backup目录的IP地址目录下

md5sum $Path/$IP/backup$Time.gz.tar>$Path/$IP/flag_$Time.log && \

这条命令是上面执行完打包文件后有了打包文件之后在把打包文件加上指纹存放到日志里面

rsync -avz $Path/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password && \

最后把backup目录里面的内容推送到备份服务器上

find $Path -type f -name ".gz.tar" -name ".log" -mtime +7|xargs rm -f

本地服务器删除7天以前的打包文件和日志

#3、保留每周6数据,删除180天以前的数据,发邮件给管理员(B端)

[root@backup scripts]# /etc/init.d/postfix start #B端开启邮件队列,否则无法发送。

[root@backup scripts]# vi /etc/mail.rc #B端配置邮件把下面的配置命令放到这个文件的最后一行

set from=发送邮件的邮箱@163.com smtp.163.com smtp-auth-user=邮箱的客户端授权码 smtp-auth-password=bmw665889 smtp-auth=login

11fac4e896473456544ff3fc3a46ccc9.png

B端服务器发送邮件脚本

#编写脚本:

IP=$(ifconfig eth1|awk -F "[ :]+" 'NR==2{print $4}')

Path=/backup

if [ $(date +%w) -eq 0 ]

then

Time="week_$(date +%F_%w -d "-1day")"

else

Time=$(date +%F -d "-1day")

fi

LANG=en &&\

/bin/find /backup -type f -name "flag_${Time}*.log"|xargs md5sum -c >>$Path/${Time}_result.log 2>&1

/bin/mail -s "$Time bak result" 接受邮件的邮箱@qq.com

/bin/find /backup/ -type f -mtime +180 ! -name "*week*_6*"|xargs rm -f

脚本理解:

Path=/backup =》把backup目录赋值给Path变量

if [ $(date +%w) -eq 0 ] =》判断语句如果

then

Time="week$(date +%F%w -d "-1day")" =》如果是周日文件加上week_减少一天的日期

else

Time=$(date +%F -d "-1day") =》否则不加文件名还是减少一天的日期

fi =》语句结束

LANG=en &&\ =》英文字符

/bin/find /backup -type f -name "flag_${Time}.log"|xargs md5sum -c >>$Path/${Time}result.log 2>&1

#/bin/find /backup -type f -name "flag${Time}.log" =》查找以flag_时间格式的log文件

xargs md5sum -c >>$Path/${Time}_result.log 2>&1 =》排成一行用md5sum验证后把结果放到以backup目录下以时间开头_result.log文件中

/bin/mail -s "$Time bak result" 157245227@qq.com

/bin/find /backup/ -type f -mtime +180 ! -name "week_6*"|xargs rm -f =》删除180天以前的备份文件,保留每周6的文件

接触Linux不久的小白个人理解,大神级别可以无视

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值