메뉴 닫기

Rocky Linux 9 /tmp 임시파일 폴더 관리

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 폴더를 체계적으로 관리해야 하는 이유는 다음과 같습니다.

  1. 디스크 공간 확보: 프로그램이 임시 파일을 생성하고 제대로 정리하지 않으면, /tmp는 계속해서 디스크 공간을 차지하게 됩니다. 이는 결국 시스템의 디스크 부족 문제를 야기하고, 다른 중요한 작업에 영향을 줄 수 있습니다.
  2. 성능 저하 방지: 디스크 공간이 부족해지면 시스템 전반적인 성능이 저하될 수 있습니다. 또한, 오래된 불필요한 파일들이 쌓여 있으면 파일 시스템 검색 및 접근 속도에도 영향을 미칠 수 있습니다.
  3. 보안 강화: /tmp는 모든 사용자가 접근할 수 있는 공간이므로, 민감한 정보가 담긴 임시 파일이 장기간 방치될 경우 잠재적인 보안 취약점이 될 수 있습니다. 주기적인 정리는 이러한 위험을 줄이는 데 도움이 됩니다.
  4. 시스템 안정성 유지: 일부 프로그램은 /tmp 디렉토리에 특정 파일을 찾아 업데이트하거나 생성합니다. 불필요한 파일이 너무 많으면 이런 작업에 방해가 될 수 있습니다.

 

tmp 폴더 관리 방법 (주기적으로 일정 시기가 지난 파일 자동 삭제)

Rocky Linux 9에서 /tmp 폴더를 주기적으로 관리하는 효과적인 두 가지 방법을 소개합니다.

방법 1: tmpwatch 툴과 cron을 이용한 관리 (권장하지 않음)

**tmpwatch**는 오래된 임시 파일을 삭제하는 데 사용되는 오래된 유틸리티입니다. 과거에는 많이 사용되었지만, 현대의 systemd 기반 시스템에서는 systemd-tmpfiles가 더 효율적이고 표준적인 방법으로 권장됩니다. 그럼에도 불구하고 tmpwatch를 선호하거나 특정 상황에서 필요한 경우를 위해 설명합니다.

  1. tmpwatch 설치: 시스템에 tmpwatch가 설치되어 있지 않다면 DNF를 통해 설치합니다.

    dnf install tmpwatch -y
    
  2. 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/ 디렉토리 내의 설정 파일을 기반으로 작동합니다.

  1. 기본 설정 확인: /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일 이상 변경되지 않은 파일이나 디렉토리를 삭제하라는 설정입니다.
  2. 삭제 주기 변경 (커스터마이징): 기본 설정(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분)
  3. 변경 사항 적용: 설정 파일 변경 후, systemd-tmpfiles --clean 명령을 실행하여 즉시 변경된 규칙을 적용하거나, 시스템을 재부팅하면 됩니다.

    systemd-tmpfiles --clean
    
    • --clean 옵션은 설정 파일에 따라 임시 파일들을 즉시 정리합니다. 실제 삭제가 이루어지므로 주의해서 사용하세요.

결론

Rocky Linux 9에서 /tmp 폴더를 효과적으로 관리하는 가장 좋은 방법은 systemd-tmpfiles 서비스를 활용하는 것입니다.
/etc/tmpfiles.d/에 커스텀 설정 파일을 생성하여 /tmp의 정리 주기를 시스템 환경과 요구사항에 맞게 조절할 수 있습니다.
이를 통해 디스크 공간을 효율적으로 사용하고, 시스템 성능 및 보안을 유지하는 데 큰 도움이 될 것입니다.

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x