램디스크, x분보다 오래된 모든 x분 파일을 정리하는 방법

램디스크, x분보다 오래된 모든 x분 파일을 정리하는 방법

10분마다 8분보다 오래된 오래된 캐시 파일을 디스크에서 지우는 cron 작업을 설정하는 것은 간단한 작업입니다.

# crontab -e
*/10 * * * * root find /tmp/diskcache -type f -mmin +8 -delete 2>/dev/null

문제는 디스크 캐시를 tmpfs로 옮기고 싶은지 여부입니다. tmpfs에 대한 내 생각은 다음과 같습니다(그렇지 않으면 tmpfs가 기본 메모리의 절반을 차지하게 됩니다).

/etc/fstab
tmpfs   /dev/diskcache     tmpfs   nodev,nosuid,size=2G      0  0

새 명령은 다음과 같습니다(정확합니까?).

# crontab -e
*/10 * * * * root find /dev/diskcache -type f -mmin +8 -delete 2>/dev null

이것이 현재 최선의 접근 방식입니까? 가장 중요한 것은 맞습니까? 감사해요:)

Filesystem        1K-blocks   Used Available Use% Mounted on
/dev/ploop39151p9  41151808 634408  38420352   2% /
devtmpfs            3145728      0   3145728   0% /dev
tmpfs               3145728      0   3145728   0% /dev/shm
tmpfs               3145728     32   3145696   1% /run
tmpfs               3145728      0   3145728   0% /sys/fs/cgroup

답변1

작동합니다.

그러나 /dev 디렉토리는 일반적으로 장치 파일에 사용됩니다. /tmp를 tmpfs로 사용하지 않고 "diskcache" 디렉터리만 사용하려면 /tmp/diskcache에 tmpfs를 마운트하면 됩니다.

10분마다 cronjob을 실행하는 대신 디렉터리에 대한 파일 시스템 감시자를 설정하여 디렉터리에 생성된 각 파일에 대해 8분 동안 대기 중인 프로세스를 생성한 다음 파일을 삭제하는 것일 수 있습니다. 이와 같이:

inotifywait -m -e create --format %f /tmp/diskcache | while read newfile; do ( sleep $((8*60)) && rm -f "${newfile}" )& done

화타이

관련 정보