리눅스에서 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 |