Rocky Linux 9에서 /tmp 임시파일 폴더 관리하는 방법
Rocky Linux 9 시스템을 운영하다 보면 /tmp
폴더 관리는 시스템 성능과 안정성을 위해 중요한 작업 중 하나입니다.
프로그램들이 임시 파일을 저장하고 사용하는 공간인 /tmp
는 제대로 관리되지 않으면 디스크 공간을 과도하게 차지하거나, 잠재적인 보안 위험을 초래할 수 있습니다.
/tmp
폴더가 무엇인지, 왜 관리해야 하는지, 그리고 효과적으로 관리하는 두 가지 방법을 알아보겠습니다.
/tmp
폴더란?
/tmp
디렉토리는 리눅스 파일 시스템에서 임시 파일을 저장하는 데 사용되는 표준 경로입니다. 웹 브라우저의 캐시 파일, 소프트웨어 설치 시 생성되는 임시 데이터, 프로그램 실행 중 생성되는 중간 결과물 등이 이곳에 저장됩니다.
- 특징:
- 누구나 접근 가능: 기본적으로 모든 사용자가 파일을 생성하고 쓸 수 있도록 넓은 권한(퍼미션
1777
)이 부여되어 있습니다.1
은 스티키 비트(sticky bit)로,
다른 사용자가 생성한 파일을 함부로 삭제할 수 없게 막아줍니다. - 재부팅 시 초기화: 전통적으로 시스템 재부팅 시
/tmp
디렉토리의 모든 내용이 자동으로 삭제됩니다. 이는/tmp
가 일시적인 데이터 저장 공간임을 의미합니다. - 디스크 기반: Rocky Linux 9의 기본 설정에서
/tmp
는 하드 디스크 공간을 사용합니다. 이는 메모리 기반인tmpfs
와는 다릅니다.
- 누구나 접근 가능: 기본적으로 모든 사용자가 파일을 생성하고 쓸 수 있도록 넓은 권한(퍼미션
/tmp
폴더를 관리해야 하는 이유
/tmp
폴더를 체계적으로 관리해야 하는 이유는 다음과 같습니다.
- 디스크 공간 확보: 프로그램이 임시 파일을 생성하고 제대로 정리하지 않으면,
/tmp
는 계속해서 디스크 공간을 차지하게 됩니다. 이는 결국 시스템의 디스크 부족 문제를 야기하고, 다른 중요한 작업에 영향을 줄 수 있습니다. - 성능 저하 방지: 디스크 공간이 부족해지면 시스템 전반적인 성능이 저하될 수 있습니다. 또한, 오래된 불필요한 파일들이 쌓여 있으면 파일 시스템 검색 및 접근 속도에도 영향을 미칠 수 있습니다.
- 보안 강화:
/tmp
는 모든 사용자가 접근할 수 있는 공간이므로, 민감한 정보가 담긴 임시 파일이 장기간 방치될 경우 잠재적인 보안 취약점이 될 수 있습니다. 주기적인 정리는 이러한 위험을 줄이는 데 도움이 됩니다. - 시스템 안정성 유지: 일부 프로그램은
/tmp
디렉토리에 특정 파일을 찾아 업데이트하거나 생성합니다. 불필요한 파일이 너무 많으면 이런 작업에 방해가 될 수 있습니다.
tmp
폴더 관리 방법 (주기적으로 일정 시기가 지난 파일 자동 삭제)
Rocky Linux 9에서 /tmp
폴더를 주기적으로 관리하는 효과적인 두 가지 방법을 소개합니다.
방법 1: tmpwatch
툴과 cron
을 이용한 관리 (권장하지 않음)
**tmpwatch
**는 오래된 임시 파일을 삭제하는 데 사용되는 오래된 유틸리티입니다. 과거에는 많이 사용되었지만, 현대의 systemd
기반 시스템에서는 systemd-tmpfiles
가 더 효율적이고 표준적인 방법으로 권장됩니다. 그럼에도 불구하고 tmpwatch
를 선호하거나 특정 상황에서 필요한 경우를 위해 설명합니다.
-
tmpwatch
설치: 시스템에tmpwatch
가 설치되어 있지 않다면 DNF를 통해 설치합니다.dnf install tmpwatch -y
-
cron
작업 등록:tmpwatch
는 스케줄링 도구인cron
에 등록하여 주기적으로 실행되도록 합니다. 예를 들어, 매일 새벽 3시에 7일 이상 변경되지 않은/tmp
폴더의 파일을 삭제하려면 다음과 같이crontab
을 편집합니다.vi /etc/crontab
파일 마지막에 다음 줄을 추가합니다:
0 3 * * * root /usr/sbin/tmpwatch -a 168 /tmp
0 3 * * *
: 매일 3시 0분에 실행합니다.root
: root 사용자로 스크립트가 실행됩니다.-a
: 마지막 접근 시간 기준으로 삭제합니다.168
: 168시간(7일) 이상 변경되지 않은 파일을 삭제합니다./tmp
: 대상 디렉토리입니다.
단점:
tmpwatch
는 더 이상 현대 리눅스 시스템에서 권장되는 방법이 아닙니다.systemd-tmpfiles
가 기본으로 제공되며 더 통합적인 파일 관리 기능을 제공합니다.
불필요하게 추가적인 툴을 설치하고 관리해야 하는 번거로움도 있습니다.
방법 2: /etc/tmpfiles.d/tmp.conf
파일을 이용한 관리 (권장)
Rocky Linux 9를 포함한 최신 systemd
기반 시스템에서는 systemd-tmpfiles
서비스가 임시 파일을 가장 효율적이고 표준적으로 관리하는 방법입니다.
이 서비스는 /etc/tmpfiles.d/
디렉토리 내의 설정 파일을 기반으로 작동합니다.
-
기본 설정 확인:
/tmp
폴더의 기본 관리 정책은/usr/lib/tmpfiles.d/tmp.conf
파일에 정의되어 있습니다.cat /usr/lib/tmpfiles.d/tmp.conf
이 파일의 내용을 보면 다음과 비슷한 줄을 찾을 수 있습니다:
q /tmp 1777 root root 10d q /var/tmp 1777 root root 30d
q
: 이 지시자는 디렉토리의 내용을 비우는 것이 아니라, 경로의 age(오래된 파일)에 따라 파일을 정리합니다.d
는 디렉토리를 생성하고 권한을 설정하는 데 사용되는 반면,
q
는 디렉토리의 내용을 정리하는 데 특화되어 있습니다. Rocky Linux 9에서는/tmp
정리를 위해q
가 사용되는 것이 일반적입니다./tmp
: 관리할 디렉토리 경로입니다.1777
: 디렉토리의 권한(sticky bit
포함)입니다.root root
: 소유자와 그룹입니다.10d
: 10일 이상 변경되지 않은 파일이나 디렉토리를 삭제하라는 설정입니다.
-
삭제 주기 변경 (커스터마이징): 기본 설정(10일)을 변경하고 싶다면,
/etc/tmpfiles.d/
디렉토리에 새로운.conf
파일을 생성하여 기본 설정을 덮어쓸 수 있습니다./etc/tmpfiles.d/
의 설정 파일은/usr/lib/tmpfiles.d/
의 설정을 항상 우선합니다.예를 들어,
/tmp
의 정리 주기를 3일로 변경하고 싶다면 다음 단계를 따릅니다.a. 새로운 설정 파일 생성:
vi /etc/tmpfiles.d/custom_tmp.conf
b. 내용 추가:
q /tmp 1777 root root 3d
3d
로 설정하면 3일 이상 수정되지 않은 파일/디렉토리가 삭제됩니다. (원하는 일수 또는 시간 단위로 변경 가능:3h
는 3시간,30m
은 30분)
-
변경 사항 적용: 설정 파일 변경 후,
systemd-tmpfiles --clean
명령을 실행하여 즉시 변경된 규칙을 적용하거나, 시스템을 재부팅하면 됩니다.systemd-tmpfiles --clean
--clean
옵션은 설정 파일에 따라 임시 파일들을 즉시 정리합니다. 실제 삭제가 이루어지므로 주의해서 사용하세요.
결론
Rocky Linux 9에서 /tmp
폴더를 효과적으로 관리하는 가장 좋은 방법은 systemd-tmpfiles
서비스를 활용하는 것입니다.
/etc/tmpfiles.d/
에 커스텀 설정 파일을 생성하여 /tmp
의 정리 주기를 시스템 환경과 요구사항에 맞게 조절할 수 있습니다.
이를 통해 디스크 공간을 효율적으로 사용하고, 시스템 성능 및 보안을 유지하는 데 큰 도움이 될 것입니다.