バックアップ スクリプト内で、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'