/ tmp는 언제 지워 집니까?


143

에 다양한 파일을 넣을 때 파일 /tmp삭제 규칙이 궁금합니다.

배포판마다 다르다고 생각하고 특히 Ubuntu 및 Fedora 데스크톱 버전에 관심이 있습니다.

그러나 알아내는 좋은 일반적인 방법은 좋은 것입니다.

더 좋은 방법은 그것을 제어하는 ​​일반적인 방법입니다! ( '매일 오전 3시에 매일 /tmp60 일보다 오래된 파일을 삭제 하지만 재부팅시 디렉토리를 지우지 않음'과 같은 것)


답변:


155

배포판에 따라 다릅니다. 일부 시스템에서, 그것은 단지 삭제됩니다 부팅 할 때, 다른 사람보다 나이가 삭제 항목을 실행 cronjobs이 N 시간.

  • 데비안 유사 시스템 : 부팅시 (규칙은에 정의되어 있음 /etc/default/rcS).
  • 레드햇과 같은 시스템 : 나이 (RHEL6이 있었다 /etc/cron.daily/tmpwatch; systemd가 구성 것와 RHEL7 및 레드햇과 같은 /usr/lib/tmpfiles.d/tmp.conf호출, systemd-tmpfiles-clean.service).
  • 젠투에서 /etc/conf.d/bootmisc.

19
실행 시간에 관계없이 실행중인 프로세스에 파일이 잠겨있을 수 있으므로 파일을 마운트 한 직후에는 부팅 직후에만 유일한 안전한 순간이 부팅됩니다.
adaptor

주기적으로 제거 할 수있는 패키지도 있습니다.
Samuel Edwin Ward

2
systemd (centos7 / rhel7)가있는 RedHat와 유사한 시스템에서는 /usr/lib/tmpfiles.d/tmp.conf에 구성되어 있습니다. systemd의 target에 의해 호출됩니다 systemd-tmpfiles-clean.service.
Franklin Piat

1
레거시 데비안에서는 tmpreaper패키지 를 고려할 수 있습니다 tmpwatch. 포크 버전입니다 .
Věroš K.

우분투 19.04 :cat: /etc/default/rcS: No such file or directory
Boris

24

CentOS (그리고 Fedora를 가정)에서 /etc/cron.daily에라는 작업이 tmpwatch있습니다. 이 실행 /usr/sbin/tmpwatch은 지정된 시간 동안 액세스되지 않은 파일을 삭제합니다. 즉, 기본 동작은 atime파일이 최근에 사용되었는지 평가하기 위해 파일을 검사하는 것입니다.

http://linux.die.net/man/8/tmpwatch

다른 배포판 (및 설치)에는 / tmp가 메모리 내부 파일 시스템 인 tmpfs로 마운트되어있을 수 있습니다. 부팅시 지워집니다.


CentOS 7.4에는 없습니다.
케빈 르마 이레

@KevinLemaire 기능이 시스템 서비스로 이동되었습니다. lists.centos.org/pipermail/centos/2014-October/147155.html
cjc

tmpwatch 파일을 찾지 못한 경우 다음을 사용하여 tmpwatch를 다운로드 할 수 있습니다.yum install tmpwatch
Ng Sek Long

다른 배포판에서 tmpwatch를 얻을 수 있습니까? 놀랍습니다. 저는 데비안 기반 배포판을 사용하고 있습니다
Jonathan

sudo find /tmp -type f -atime +10 -delete10 일 동안 액세스하지 않은 tmp 파일을 삭제합니다.주의해서 사용하십시오
Jonathan

13

내가 사용하는 Ubuntu 11.10에는에 시작 스크립트가 /etc/init/mounted-tmp.conf있습니다. 그것의 시작은 이렇게 말합니다 :

# mounted-tmp - Clean /tmp directory
#
# Cleans up the /tmp directory when it does not exist as a temporary
# filesystem.

description "Clean /tmp directory"

start on (mounted MOUNTPOINT=/tmp) or (mounted MOUNTPOINT=/usr)

자세한 내용을 읽을 수 있지만 일반적으로 /tmp마운트되거나 마운트 될 때 청소됩니다 /usr. 이것은 부팅시 정기적으로 발생하므로이 부팅 /tmp은 모든 부팅시 실행됩니다.

에서 /etc/default/rcS당신이 한 TMPTIME설정, 두 공급하기 위해 위의 init 스크립트에 사용되는 find기본적으로 (변경 액세스, 수정 된) 자신의 시간을 기준으로 파일 삭제를 제어 - 끝에서 명령을.


5

RHEL 6.2에서 / tmp의 파일은 10 일 내에 액세스하지 않은 경우 tmpwatch에 의해 삭제됩니다.

/etc/cron.daily/tmpwatch 파일은 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

-x 인수는 제외 할 파일입니다. 마지막 두 번째 인수는 마지막으로 액세스 한 시간 이후에 대기하는 시간입니다. 마지막 인수는 검사 할 디렉토리입니다.


5

Fedora 18부터는 기본적으로 /tmp켜져 있고 tmpfs(예 : RAM) 전원이 꺼지면 지워집니다.

이 동작은 발행 systemctl mask tmp.mount및 재부팅 으로 비활성화 할 수 있으며 발행 및 재부팅으로 다시 활성화 된 systemctl unmask tmp.mount다음 파일 시스템에 /tmp마운트 /되어 /usr/lib/tmpfiles.d/tmp.conf설정에 의해 제어 될 수 있습니다 .

참조 http://fedoraproject.org/wiki/Features/tmp-on-tmpfs을 하고 man tmpfiles.d각각의 경우에 대한 자세한 내용은.


3

openSUSE 13.2에서 sysconfig의 다음 변수를 사용하여 지우기 동작을 제어 할 수 있습니다.

  • MAX_DAYS_IN_TMP
  • MAX_DAYS_IN_LONG_TMP
  • TMP_DIRS_TO_CLEAR
  • LONG_TMP_DIRS_TO_CLEAR
  • OWNER_TO_KEEP_IN_TMP
  • CLEAR_TMP_DIRS_AT_BOOTUP

이 변수를 다음과 같이 수정 할 수 있습니다 (각 변수의 사용법도 찾을 수 있습니다)

  1. /etc/sysconfig/cron명령 행에서 파일을 수동으로 편집하십시오 .
  2. Yast를 열고 시스템-> / etc / sysconfig 편집기-> 시스템-> Cron으로 이동하십시오.

2

더 좋은 방법은 그것을 제어하는 ​​일반적인 방법입니다! ( '매일 오전 3시에 매일 60 일보다 오래된 / tmp 파일을 삭제하지만 재부팅시 디렉토리를 지우지 마십시오'와 같은 것)

부팅시 지우고 싶지 않은 일종의 임시 파일은 / var / tmp에 있습니다.

그게 다야 :-)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.