CentOS에서는 주기적으로 오래동안 사용하지 않는 /tmp 아래의 내용을 삭제하는 Cron이 동작한다.
오픈 소스를 가져다 쓰면 /tmp에 파일을 생성해서 사용하는 경우가 있는데,
해당 프로그램을 수행하고 오랫동안 사용하지 않는다면 /tmp 아래의 내용이 Cron에 의해 삭제되어 정상 동작이 하지 않는 문제가 발생한다.
이런 것을 방지하기 위해 Cron에 옵션을 추가하여 삭제하지 않도록 할 수 있는데, CenOS 6과 7이 처리가 다르다.
아래는 옵션 추가하는 방법

[ CentOS 6 ]
- /etc/cron.daily/tmpwatch에 옵션을 추가하여 막을 수 있음.
- -x옵션은 해당 디렉토리 삭제 제외
- -X옵션은 삭제 제외 옵션이지만 디렉토리나 파일명을 패턴으로 등록 가능
vi /etc/cron.daily/tmpwatch

#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
        -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
        -X '/tmp/hsperfdata_*' -X '/tmp/Jetty_0_0_0_0_8199_mcaopenapi*' 10d /tmp
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
    if [ -d "$d" ]; then
        /usr/sbin/tmpwatch "$flags" -f 30d "$d"
    fi
done


[ CentOS 7 ]
- CentOS 7로 업그레이드 되면서 tmpwatch가 아닌 /usr/lib/tmpfiles.d 아래에 .conf파일들로 관리 된다.
- 기존 파일을 참조하여 원하는 설정을 등록하여 사용
- x 옵션은 등록한 폴더의 내용이 전부 제외
- X 옵션은 등록한 폴더만 제외, 등록한 폴더 안의 내용은 삭제됨
- 아래의 예제의 경우 /tmp/systemd-private-%b-* 디렉토리 아래에 /tmp/systemd-private-%b-*/tmp 아래의 파일들만 삭제됨
]# vi /usr/lib/tmpfiles.d/tmp.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# See tmpfiles.d(5) for details

# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d

# Exclude namespace mountpoints created with PrivateTmp=yes
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp

+ Recent posts