db2 删除过早的备份文件

数据库每天晚上十点定时进行全备,如何实现自动删除过早的备份文件呢,比如只保留一周的备份副本。

参与17

4 同行回答

msjiang3433 msjiang3433 系统工程师 现已失业
vi RoutineDelete.sh ,输入如下内容TNOW=`date +%Y%m%d`DaysToDelete=TTNOW=`date \"+%Y%m%d\" -d \"$TNOW -$DaysToDelete days\"`FILETOREMOVE=`ls | grep $TTNOW`rm -f /$FILETOREMOVE退出保存,并赋予执行权限然后crontab -e 建立一个定时任务,每天几点执行打完收工...显示全部

vi RoutineDelete.sh ,输入如下内容

TNOW=`date +%Y%m%d`

DaysToDelete=<一个整数,用来表示你要删除几天前的>

TTNOW=`date \"+%Y%m%d\" -d \"$TNOW -$DaysToDelete days\"`

FILETOREMOVE=`ls <数据库的备份路径> | grep $TTNOW`

rm -f <数据库的备份路径>/$FILETOREMOVE

退出保存,并赋予执行权限

然后crontab -e 建立一个定时任务,每天几点执行

打完收工

收起
餐饮 · 2015-12-07
浏览1306
  • xyyx06  xyyx06
    非常感谢您的回复。还有个问题请教下:在数据库的备份路径下有11月份的备份文件,可是为啥FILETOREMOVE这个参数的输出是空的呢?脚本如下: #!/bin/sh TNOW=`date +%Y%m%d` DaysToDelete=5 TTNOW=`date "+%Y%m%d" -d "$TNOW - $DaysToDelete days"` FILETOREMOVE=`ls /data/backup/db2backup/ | grep $TTNOW` echo "=========TNOW:$TNOW====" echo "=========$TOW-$DaysToDelete days===" echo "=========TTNOW:$TTNOW===" echo "=========FILETOREMOVE:$FILETOREMOVE===" 输入结果如下: =========TNOW:20151207==== =========-5 days=== =========TTNOW:20151202=== =========FILETOREMOVE:===
    2015-12-07
  • msjiang3433  msjiang3433 回复 xyyx06
    grep $TTNOW 换成 grep 201511,不就行了?关键是看你怎么活学活用grep
    2015-12-14

提问者

xyyx06
数据库管理员 dfd
评论13

相关问题

相关资料

问题状态

  • 发布时间:2015-12-07
  • 关注会员:6 人
  • 问题浏览:4297
  • 最近回答:2015-12-08
  • X社区推广