私は次の簡単なスクリプトを作成しました。
#/bin/bash
DATE=$(date +"%d_%m_%Y-%H:%M:%S")
tar -czvf /kopie/bin-$DATE.tar /bin
DATE=$(date --date="2 hours ago" +"%d-%m-%Y_%H")
rm -f /kopie/bin-$DATE*.tar
スクリプトの最後の行に問題があります。 rm コマンドは機能せず、ファイルは削除されません。 「2時間前」の日付はうまくいくので問題ありません。
ベストアンサー1
2つの方法でファイル名を指定するようです。
DATE=$(date --date="2 hours ago" +"%d-%m-%Y_%H")
たとえば、上記では年と時間の間に_があります。
ただし、作成した日付の形式は次のとおりです。
DATE=$(date +"%d_%m_%Y-%H:%M:%S")
しかし、これはまだ「恋愛」の本質的な問題を解決しません。やや2時間前」は13:00:00から12:59:59まで1秒かかるため、「2017-11-20_13*」パターンと一致しません。
私は以下を使用することを検討しますfind
:
find . -name "*.tar" -maxdepth 0 -cmin +120 -delete
2時間より古い現在のディレクトリのすべての* .tarファイルは削除する必要があります(1分の猶予期間には+119を使用)。また、-delete
この方法が機能しているかどうかをテストするときは省略できます。