想要通过自动删除旧备份来改进我的简单站点/数据库备份脚本

时间:2010-03-21 00:52:24

标签: shell scripting cron date

我有以下简单的脚本来备份我的网站文件和数据库。该脚本每天通过cron作业运行。

#!/bin/sh

NOW=$(date +"%Y-%m-%d")

mysqldump --opt -h localhost -u username -p'password' dbname > /path/to/folder/backup/db-backup-$NOW.sql

gzip -f /path/to/folder/backup/db-backup-$NOW.sql

tar czf /path/to/folder/backup/web-backup-$NOW.tgz /path/to/folder/web/content/

它运行良好,但我不希望大量旧备份堵塞我的系统。如何修改脚本以删除脚本运行时超过一周的任何备份?

2 个答案:

答案 0 :(得分:0)

如何添加这样的东西:

find -ctime +7 -print0 | xargs -0 rm -v

find -ctime +7 -print0查找所有已更改的文件(c)超过7天前(+7)并将其作为\0分隔的字符串(-print0)发送出去{{{ 1}}作为参数发送给xargs -0

答案 1 :(得分:0)

使用GNU查找

,您可以使用-delete

find /path -type f -iname "*backup*gz" -mtime +7 -delete

或者您可以使用+;代替xargs。

find /path -type f -iname "*backup*gz" -mtime +7 -exec rm -f "{}" +;