리눅스에서 temp 디렉토리에 임시로 생성되는 파일들이 아주 많이 생성되는 경우가 있다.

그것도 주기적으로 아주 많이. 어차피 임시 파일들이라 더 이상 필요하지 않음에도 불구하고 엄청난 용량을 잡아 먹을 수가 있다.

그래서 이런 임시 파일들을 현재 사용중인 녀석들을 제외하곤 모두 지우고 싶었다.


처음엔 간단하게 쉘스크립트에서 ls -l /temp/*.tmp 요렇게 지울 목록 전체를 받아와서 loop를 돌면서 삭제를 하려고 했다.

그런데 "Argument list too long problem"라고 하는 메시지가 뜨면서 삭제를 할 수 없었다.

찾아보니 너무 많은 파일 수 때문에 안되는 문제였다.


내 경우 Red Hat Enterprise Linux (RHEL) 6.4 와 AIX 7.1 에서 이런 문제를 만났다.

무슨 설정에서 저 Argument 크기를 늘리라고 하던데 그것도 분명 파일의 수가 너무 커지면 의미가 없다라고 생각되서 찾아보니 이런 방법이 있더라는 것.


1. 최종 수정 시간이 10분 지난 파일들 모두 찾아서 목록으로 보기

$ find /temp/ -type f -name '*.tmp' -mmin +10 -exec ls -ltr {} \;


2. 최종 수정 시간이 10분 지난 파일들 모두 찾은 파일들 모두 삭제

$ find /temp/ -type f -name '*.tmp' -mmin +10 -exec rm -f {} \;





'Dev > linux' 카테고리의 다른 글

우분투 로그인 문제  (1) 2023.09.06
[펌] 쉘 프롬프트 변경하기  (1) 2011.12.10
Using strace and lsof to track down process hangs  (4) 2011.11.09
linux에서의 링크 생성  (1) 2011.01.27
다양한 top 명령어의 활용  (4) 2010.12.03

+ Recent posts