tmpwatch는 언제 / tmp에 파일을 정리합니까?


14

CentOS 6.x

/ tmp /에 배치 한 파일이 정확히 삭제 될 때 혼란스러워합니다.

/etc/cron.daily/tmpwatch는 다음과 같습니다.

#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
        -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
        -X '/tmp/hsperfdata_*' 10d /tmp
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
    if [ -d "$d" ]; then
        /usr/sbin/tmpwatch "$flags" -f 30d "$d"
    fi
done

5 행의 섹션은 -X '/tmp/hsperfdata_*' 10d /tmp/ tmp /에 배치 한 파일이 10 일 동안 남아 있다고 믿게합니다 (물론 삭제 중에 파일이 잠겨 있지 않거나 디렉토리가 tmpfs 파일 시스템에 마운트되어 있다고 가정).

그 맞습니까?

답변:


8

CentOS 6에서는 tmpwatch파일이 마지막으로 액세스 된 시점을 삭제하기로 결정한 것으로 보입니다 . 10 일 (10d) 이상이 지난 경우 tmpwatch실행 시 삭제 됩니다.

로부터 tmpwatch매뉴얼 페이지

    By  default,  tmpwatch  dates  files  by their atime (access time), not 
    their mtime (modification time). If files aren't being removed when 
    ls -l implies they should be, use ls -u to examine their atime to see if 
    that explains the problem.

또한 매뉴얼 페이지에서 :

    The time parameter defines the threshold for removing files.  If the
    file has not been accessed for time, the file is removed.  The time 
    argument is a number with an optional single-character suffix specifying 
    the units: m for minutes, h for hours, d for days.  If no  suffix  is 
    specified, time is in hours.

6

RHEL7 / CENTOS7에는 매일 실행되는 시스템 대상이 있습니다 systemd-tmpfiles-clean.timer(대체 /etc/cron.daily/tmpwatch). 기본값은 OnBootSec=15minOnUnitActiveSec=1d입니다. 인용 systemd.timer 맨 페이지 :

OnBootSec =은 머신 부팅 시간을 기준으로 타이머를 정의합니다.

OnUnitActiveSec =는 타이머가 활성화 된 장치가 마지막으로 활성화 된시기를 기준으로 타이머를 정의합니다.

따라서 / tmp는 이제 매일 시스템을 부팅 할 때 대략 매일 청소됩니다. 따라서 시간이 정의되지 않았습니다 . 대규모 배포의 경우 모든 가상 머신이 동시에 정리를 수행하지는 않습니다.

기록을 보려면 다음을 실행하십시오.

$ journalctl  -u systemd-tmpfiles-clean
Mar 12 21:44:17 c7.klabs.be systemd[1]: Starting Cleanup of Temporary Directories...
Mar 12 21:44:18 c7.klabs.be systemd[1]: Started Cleanup of Temporary Directories.

"정리 시작"은 실제로 "완료"를 의미합니다.


tmpwatch는을 사용하는 좋은 능력을 가지고 fuser있습니다. 시스템 버전이 그렇게 할 수 있습니까?
CMCDragonkai

2
@CMCDragonkai, 2015 년 4 월 Lennart Poettering (SystemD 개발자)은 systemd-devel 메일 링리스트에서 다음과 같이 말했습니다. ] " 다음에 그는 " atime check [..]이면 충분합니다. 그렇지 않은 경우가 있습니까? "
Franklin Piat

예, 그 질문을했습니다.
CMCDragonkai

1
@CMCDragonkai, 메일 링리스트에 Lennart Poettering을 인용하고있었습니다. 그에게 답장하십시오 (목록에 있음)!
Franklin Piat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.