/ tmp를 청소하는 방법?


73
rizhas@rizhas-laptop:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda7        67G   58G  5,2G  92% /
none            4,0K     0  4,0K   0% /sys/fs/cgroup
udev            1,5G   12K  1,5G   1% /dev
tmpfs           303M  1,2M  302M   1% /run
none            5,0M     0  5,0M   0% /run/lock
none            1,5G  348K  1,5G   1% /run/shm
none            100M   80K  100M   1% /run/user
overflow        1,0M  1,0M     0 100% /tmp
overflow        1,0M  1,0M     0 100% /tmp

정리하는 방법 /tmp?


1
아마도 유닉스와 리눅스 에서 대답했을 것 입니다. 그것이이 질문을 중복시키는 지 확실하지 않습니다.
drc

아니 @drc하지만 좋은 발견. 거기에서 링크를 사용하여 답변을 업데이트했습니다.
Rinzwind


답변:


116

/ tmp는 재부트시 정리되어야하지만 재부트하지 않으면 (서버에서 정상 임) 정리가 수행되지 않습니다.

find /tmp -ctime +10 -exec rm -rf {} +

10 일이 지난 파일과 폴더를 모두 삭제합니다. 매일 cron에 추가 할 수 있습니다.


최신 정보

아래의 의견에서 @sfussenegger는 귀하의 요구와 운영중인 시스템에 더 적합한이 명령의 약간 다른 형식을 권장합니다.

sudo find /tmp -type f -atime +10 -delete

여기서 명령은 10 일 이상 액세스sudo 하지 않은 파일에서 작동하고 폴더가 아닌 파일 만 삭제 하여 모든 것이 삭제되었는지 (또는 루트로 실행할 수 있는지) 확인하는 데 사용 됩니다 . 또한 명령 을 실행하지 않아도됩니다.-deleterm


2
파일 시스템이이 정보를 유지하는 경우에만 (/
ctime

7
좋아, 나와 함께 견딜 수 있지만 한 가지 더 있습니다 : 당신은 파일 만 검색하고 싶습니다 ( -type f). 그렇지 않으면 디렉토리 트리의 상위에 한동안 액세스하지 않았을 가능성이 있으며 여전히 사용 중일 수있는 모든 컨텐츠를 삭제합니다. 그래서 내가 추천하는 마지막 명령은sudo find /tmp -type f -atime +10 -delete
sfussenegger

2
@ sfussenegger, 아마도 귀하의 의견을 답변으로 홍보 할 수 있습니까? 의견에 "숨겨진"것보다 낫다고 생각합니다.
Jonathan

34

tmp 디렉토리 (/ tmp / / usr / tmp 등) 내의 모든 항목을 삭제할 수 있다고 가정 할 수 있습니다. 프로그램이 / tmp /를 사용하여 해당 세션에 대한 정보를 임시로 저장할 수 있으므로 사용중인 모든 프로그램 및 서비스를 삭제하기 전에 삭제하십시오. 그래서 작업을 수행 sudo service mysql stop하고 sudo service apache2 stop당신이 MySQL과 / 또는 아파치 실행이있는 경우. / tmp / 디렉토리에있는 파일 이름은 대부분 자신이 속한 프로그램에 대한 단서를 제공합니다.

명령 줄에서 ...

cd /tmp/
pwd
sudo rm -r *

/ tmp / 디렉토리를 비우고 모든 파일과 하위 디렉토리를 제거합니다. 올바르게 입력하십시오. 에있는 명령 pwd은 필요하지 않지만 표시되어야합니다 /tmp.

대화식으로 원한다면 (삭제를 확인해야 함) :

cd /tmp/
sudo rm -ri *

재부트는 다음과 같이 / tmp도 지 웁니다 . / tmp 디렉토리는 어떻게 정리됩니까? 따라서 재부트 후 / tmp /에 파일이 가득 찬 경우 해당 파일의 출처를 조사해야합니다.

또한 / tmp에 대한 1Mb는 많은 공간이 아니라고 말하고 싶습니다. MySQL을 사용하고 있습니까? 이 문제를 해결하는 방법 은 https://unix.stackexchange.com/a/76058/10017 을 참조 하십시오 (@drc 덕분에)


2
"재해 없음"은 마지막 재부팅 이전 날짜의 파일에 적용됩니다. 그렇지 않으면 현재 프로그램에서 사용 중일 수 있으며 (그 프로그램의 경우) 문제가 발생할 수 있습니다 ... 예를 들어 / tmp에 파일을 생성하는 스크립트가 있고 다음 처리 단계를 수행하기 위해 다시 읽습니다. . 중간에 이들을 삭제 / 잘라 내면 프로그램의 동작이 중단 될 수 있습니다 (그리고 파일의 용도에 따라 위험한 결과를 초래할 수도 있습니다)
Olivier Dulac

... who –b(마지막 부팅 날짜)를 사용한 다음 부팅시 날짜가 지정된 파일 (/ boottime)을 생성하면 ( touch ....... /boottime) find /tmp -type f \( ! -newer /boottime \) -delete \;마지막 부팅보다 오래된 파일 만 삭제 하여 안전한 작업을 수행 할 수 있습니다
Olivier Dulac

이 의견을 사용하여 답을 넓힐 수 있습니까? 당신이 생각 나는 : / tmp는 아마 mysql에서 온 것입니다.
Rinzwind

4
mktemp내 대본에서 정기적으로 사용하는 사람으로서 나는 "해가없는"진술에 강력하게 동의하지 않습니다.
hytromo

2
/tmp마지막 재부팅보다 오래된 것이 있으면 시작 스크립트가 작업을 수행하지 않은 것입니다.
Simon Richter

10

tmpreaper프로그램은 / tmp를 주기적으로 정리하는 데 사용할 수 있습니다 . 이 프로그램은 특정 기간 (일반적으로 2 주) 동안 액세스하지 않은 모든 항목을 삭제합니다. 이것이 제대로 작동하려면 파일 시스템이있는 파일 시스템에 atimes옵션이 활성화 되어 있어야합니다 . 당신이하고있는 것처럼 보이는 tmpfs 를 사용한다면 괜찮을 것입니다.

물론 재부팅하면 / tmp 도 지워지지 만 지루할 것입니다.


이것이 우분투와 데비안의 표준 옵션이 아니라는 것이 놀랍습니다. / tmp를 채우는 상대적으로 권한이없는 사용자 프로세스를 실행하는 것이 일반적입니다.
Sage

1
예, 그러나 시스템 관리자가 설정해야하는 정책입니다. 데이터가 오래 유지 될 것으로 예상되는 장기 실행 서비스가있는 경우 "정리되지 않은"기본값은 위험합니다.
Simon Richter

7

디렉토리 /tmp는 임시를 의미합니다.

이 디렉토리는 임시 데이터를 저장합니다. 당신은 그것에서 아무것도 삭제할 필요가 없습니다, 그것에 포함 된 데이터는 모든 재부팅 후 자동으로 삭제됩니다.

여전히 존재하는 데이터를 삭제하려면 사용하십시오.

sudo rm -r /tmp/*

임시 파일이므로 삭제해도 아무런 문제가 없습니다.


9
재부팅 후 필요하지 않다는 의미에서 일시적인 것입니다. 즉, 현재 필요하지 않거나 5 분 내에 필요하지 않다는 의미는 아닙니다.
Daniel Serodio

5
이것이 "문제를 일으키지 않는다"는 것은 사실이 아닙니다. 나는 내가 더 잘 알고 기본적으로 내 기계를 호스로하기 전에 이것을 한 번했다.
Kyle Strand


4

와 같은 명령을 실행하기 전에주의하십시오 rm -r ./*. 일단 실행하면 데이터를 복구하기가 매우 어렵거나 불가능합니다.

모두 제거됩니다. 삭제하려는 디렉토리가 올바른지 확인하십시오.

물건을 다루는 더 안전한 방법이 있습니다.

# sudo rm -r /tmp/*

그렇게하면 실수로 쉘 내부 에서이 명령을 실행할 때 history잘못된 파일을 삭제하지 않습니다 (파일을 유지하지 않는 한 /tmp).


2

/tmp때문에 디렉토리는 부팅 할 때마다 기본적으로 지워졌습니다 TMPTIME이다 0기본적으로.


1

Linux 파일 시스템의“/ tmp”마운트가 오버플로 (종종 1MB 크기)로 마운트 된 경우“/ tmp”를 자체 파티션으로 지정하지 않고 루트 파일 시스템이 채워져“/ tmp”가 원인 일 수 있습니다. 대체로 다시 마운트되었습니다. 공간을 비운 후이 문제를 해결하려면 대체를 마운트 해제하면 원래 위치에서 다시 마운트해야합니다.

sudo umount overflow

장치가 사용중인 경우

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