Linuxでファイル名の一部として日付スタンプを含むファイルを削除するためのよりクリーンな方法
30日以上経過したMySQLダンプファイルをパージするという新しい要件があります。ファイルは「all-mysql-YYYYMMDD-HHMM.dump」の命名規則を使用しています。ファイルはSANマウントファイルシステムに配置されるため、復元は問題になりませんが、残念ながらドライブスペースが制限され、すぐにいっぱいになるため、頻繁に人間の介入が必要になります。 ファイル名の例 all-mysql-20130324-2330.dump all-mysql-20130325-2330.dump all-mysql-20130326-2330.dump 私の最初の考えは、-mtime +30を指定したバッチスクリプト内で「find」を使用することでしたが、変更時間は保証されず、古いアーカイブの一部はパージ日を回避できます:) 次のBASHスクリプトを作成しましたが、この操作を実行するためのよりクリーンな方法があることを望んでいました。 #!/bin/bash STARTING_DIR=$(pwd) FILE_PREFIX=all-mysql- BACKUP_DIR=/opt/backup/mysql/dumps ARCHIVE_WINDOW_DAYS=30 cd $BACKUP_DIR # Create YYYYMMDD datestamp for Today - $ARCHIVE_WINDOW_DAYS ARCHIVE_WINDOW_IN_SECS=$(echo "$(date +%s) - (${ARCHIVE_WINDOW_DAYS} * 86400)" | bc) PURGE_BEFORE_DATE=$(date -d @${ARCHIVE_WINDOW_IN_SECS} +%Y%m%d) for backup_file in $FILE_PREFIX* do # Trim prefix, time portion of date stamp, and …