1

現在の日付までにバックアップフォルダにフォルダを作成するスクリプトがあります。このスクリプトは、cronを介して毎日1回実行されます。

フォルダ名で3日以上経過したフォルダを削除する方法はありますか?何かのようなもの

日付-3?

動作するスクリプト:JoSoに感謝します。このスクリプトは、日付ごとにフォルダーを作成します。バックアップ用にファイルを圧縮し、バックアップディレクトリに貼り付けて、3日より古いバックアップをクリアします:-)

    #!/bin/bash

    cd /home/backups

    mkdir $(date +%Y-%m-%d)

    cd /opt/

    tar -pczf /home/backups/$(date +%Y-%m-%d)/opt.tar.gz code

    cd /var/

    tar -pczf /home/backups/$(date +%Y-%m-%d)/var.tar.gz work

cd /home/backups/
threedaysago=`date -d "3 days ago" +%Y%m%d`

for backup in [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
do
    backupdate=`echo "$backup" | tr -d -`   # remove dashes

    if test "$backupdate" -lt "$threedaysago"
    then
        rm -rf "$backup"
    fi
done
4

2 に答える 2

3
threedaysago=`date -d "3 days ago" +%Y%m%d`

for backup in [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
do
    backupdate=`echo "$backup" | tr -d -`   # remove dashes

    if test "$backupdate" -lt "$threedaysago"
    then
        rm -rf "$backup"
    fi
done

mtimeとは独立して動作し、特に奇妙なコーナーケースでは壊れないことをお伝えできます;-)

于 2012-07-12T10:33:25.003 に答える
0

3日より古い(「通常のファイル」タイプの)毎日のバックアップを削除します。

rm -f `find $YOUR_BACKUP_DIR -maxdepth 1 -type f -mtime +3`

findマニュアルページから:

   -mtime n
          File's data was last modified n*24 hours ago.  See the  comments
          for -atime to understand how rounding affects the interpretation
          of file modification times.
于 2012-07-12T09:39:31.710 に答える