linux 备份脚本 指定时间范围 获取

2017年11月17日 0 条评论 244 次阅读 0 人点赞

备份文件保留说明

#为节省空间以及确保数据备份作用,备份文件保留机制为: 

#1.一个星期以内:每6小时备份一次,每天4个文件全部保存 

#2.一个星期以外&一个月以内:每天保留一个备份文件 

#3.一个月以外&3个月以内:每个月保留4个备份文件(每月06、13、20、27号保留06点的备份文件) 

#4.3个月以外:每个月保留一个备份文件(每月13号06点)

命令操作

#备份部分采用每6小时一次 

#crontab内容

#备份 
1 */6 * * * /bin/sh /*/backup.sh 
#删除 
1 1 * * 1 /bin/sh /*/del_backup.sh

#backup.sh内容

#!/bin/bash
#crontab
#1 */6 * * * /bin/sh /*/backup.sh 
now=`date +%Y%m%d%H%M%S`
#用来识别备份文件
dmpfile=backup_$now.dmp
DATA_PUMP_DIR=/u01/app/oracle/admin/moe1/dpdump
/opt/oracle/11.2.0/bin/expdp user/pass@moe1 DUMPFILE=$dmpfile DIRECTORY=DATA_PUMP_DIR full=y compression=all
tar cjf ${DATA_PUMP_DIR}/${dmpfile}.bz2 ${DATA_PUMP_DIR}/${dmpfile}
if [ -f ${DATA_PUMP_DIR}/${dmpfile}.bz2 ];then rm -rf ${DATA_PUMP_DIR}/${dmpfile};fi

#del_backup.sh内容

#!/bin/bash
#crontab
#1 1 * * 1 /bin/sh /*/del_backup.sh export bak_path=/backup
# > 90days
for val in `find ${bak_path} -mtime +90 -name "*.bz2" | grep -v 'backup_......\(1306\)'`;do rm -rf ${val};done
# > 30days && < 90days
for val in `find ${bak_path} -mtime -90 -mtime +30 -name "*.bz2" |grep -E -v 'backup_......(0606|1306|2006|2706)'`;do rm -rf ${val};done
# > 7days && < 30days
for val in `find ${bak_path} -mtime -30 -mtime +7 -name "*.bz2" |grep -E -v 'backup_........06'`;do rm -rf ${val};done

Sevenfal

这个人太懒什么东西都没留下

文章评论(0)