在我的备份脚本中,我只想保留 7 天的备份(为此尝试使用 logrotate 并且效果很好,但是我遇到了 cron.daily 的时间问题以及它如何影响“dateext”)。我在使用参数扩展从文件名中提取日期时遇到问题。
以下是一些文件的一些示例
- foo.bar.tar.gz-20120904
- bar.baz.tar.gz-20120904
- ...
这是我的 bash 脚本:
#!/bin/bash
path="/foo/"
today=$(date +%Y%m%d)
keepDays=7
keepSeconds=$(date -d "-$keepDays day" +%s)
for f in $path"*"; do
fileSeconds=$(date -d ${f##*-} +%s)
if [ $fileSeconds -lt $keepSeconds ]
then
rm $f
fi
done
这是我得到的错误:
date: extra operand `/foo/foo.bar.tar.gz-20120904'