在我的公司,我们每天都会为各种内容创建备份(完整备份,而非增量备份)。我们希望按以下方式轮换备份:
- 保留过去一周的每日备份
- 仅保留过去一个月(或 3 个月左右)的每周备份
- 仅保留去年的每月备份
所以基本上,最近的备份应该是细粒度的,而不是那么新 - 更粗粒度。
我们很懒 :) 可以用 logrotate 完成吗?或者其他工具?
问候,
麦克风
答案1
您可以使用 cron 安排一个或多个如下所示的脚本。
#!/bin/bash
BULOG=/srv/backup/savelog
BULST="/etc /srv/www /var/lib/named"
[email protected]
today=`date +%d%m%y`
deldate=`date +%d%m%y --date '7 day ago'`
echo "Backup started: "`date`> $BULOG
echo "Backup "`date` >>/srv/backup/ErrorLog
cd /srv/backup
rm -f backup$deldate.tar.gz
tar czf /srv/backup/backup$today.tar.gz $BULST 2>>/srv/backup/ErrorLog
if [ $? -eq 0 ];then
echo "Backup $BULST success" >> $BULOG
else
echo "Backup $BULST NOT processed" >> $BULOG
fi
echo "-------" >>/srv/backup/ErrorLog
echo "Backup finished: " `date` >> $BULOG
cat $BULOG | mail -s MyBacukp_$today $EMAIL
这仅需要进行一点点调整即可满足您的请求。