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
화타이