티스토리 뷰

특정 패턴 경로의 디렉토리 시간별 제거

qnap NAS를 사용하는데, 이 NAS에 있는 find 는 -ctime을 제공하지 않네요.

우선 문제는,

  • /share/backup/111/increasement/backup_2016/12/10/*
  • /share/backup/112/increasement/backup_2016/12/10/*
  • /share/backup/113/increasement/backup_2016/12/10/*
  • /share/backup/114/increasement/backup_2016/12/10/*

위와 같은 패턴의 백업 디렉토리들이 존재하는데요, 마지막 3일치만 남겨놓고 지우고 싶어서 다음과 같은 방법으로 해결했습니다.

#!/bin/bash

find /share/backup/*/increasement -name backup_* | grep $(date +%Y-%m-%d --date '3 days ago') | xargs rm -rf

위의 스크립트를 crontab 에 매년 매월 매일 0시 0분에 동작하도록 적용하여 처리할 수 있었습니다.