@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

TimeMachineのようにバックアップファイルを残す仕組みが欲しい

バックアップファイルのローテーションというか、保持方針をTimeMachineのようにしたい。

この部分。

  • Hourly backups for the past 24 hours
  • Dayly backups for the past month
  • weekly backups for all previous month

まず1時間おきにバックアップファイルを作成しているという前提で、二日前以前は一日一ファイルだけ残す。という部分をシェルのワンライナーにした。

ファイル名は backup_YYYYmmdd_HHMMDD のような形を想定し、毎日0時のファイルを残すことにした。

ls | grep 'backup_' \
  | grep -v $(date '+%Y%m%d') \
  | grep -v $(date -d '-1 day' '+%Y%m%d') \
  | grep -v _0000 \
  | xargs rm

macなら date -v-1d '+%Y%m%d' になる。

もっといい方法があるなら知りたい。うまくググれない。。。