Ubuntu 16.04 / logrotate 설치하고 설정하기

로그 파일

우분투(Ubuntu)는 여러 작업의 내용을 로그(Log) 파일로 남깁니다. 예를 들어 웹서버 운영과 관련된 로그는 /var/log/apache2에 있습니다.

로그는 기본적으로 하나의 파일에 계속 추가하는 것이어서, 시간이 지날수록 파일의 크기가 커집니다. 로그 파일의 크기가 너무 커지면, 시스템이 느려지거나 다운되기도 합니다.

이러한 문제를 해결해주는 패키지가 logrotate입니다. 로그 파일이 일정 기준을 충족하면 기존 로그 파일을 다른 이름으로 변경하여 저장하고 새로운 로그 파일을 생성합니다. 따라서 로그 파일이 계속해서 커지는 것을 방지할 수 있고, 필요 없는 과거의 로그 파일을 삭제하여 디스크 용량도 절약할 수 있습니다.

logrotate 설치

logrotate가 설치되어 있지 않다면 다음과 같이 명령하여 설치합니다.

apt install logrotate

logrotate 설정

logrotate 기본 설정 파일은 /etc/logrotate.conf이고, 개별 로그 파일 관련 설정 파일들은 /etc/logrotate.d에 있습니다.

예를 들어 apache2 로그 설정 파일은 /etc/logrotate.d/apache2입니다.

/var/log/apache2/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 640 root adm
  sharedscripts
  postrotate
    if /etc/init.d/apache2 status > /dev/null ; then \
      /etc/init.d/apache2 reload > /dev/null; \
    fi;
  endscript
  prerotate
    if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
      run-parts /etc/logrotate.d/httpd-prerotate; \
    fi; \
  endscript
}

몇가지 내용을 살펴보면..

daily

로그 파일 교체 주기입니다. 값으로는 daily, weekly, monthly 등이 가능합니다.

rotate 14

로그파일 개수입니다. 이를 초과하면 순차적으로 삭제합니다.

compress

압축 여부를 정합니다. 값으로는 compress, nocompress가 가능합니다.

잘 작동하는지 확인하기

로그 파일이 다음처럼 만들어지면 잘 작동하는 것입니다.

error.log
error.log.1
error.log.10.gz
error.log.11.gz
error.log.12.gz
error.log.13.gz
error.log.14.gz
error.log.2.gz
error.log.3.gz
error.log.4.gz
error.log.5.gz
error.log.6.gz
error.log.7.gz
error.log.8.gz
error.log.9.gz

같은 카테고리의 다른 글

Ubuntu 16.04 / SASS 설치하는 방법

Ubuntu 16.04 / SASS 설치하는 방법

우분투 16.04에 SASS를 설치하는 방법은 두 가지가 있습니다. 방법 1 apt install ruby-sass 방법 2 apt install ruby gem install sass 설치되었는지 확인하는 방법 sass -v SASS 버전이 출력되면 제대로 설치된 것입니다. Sass 3.4.23 (Selective Steve) 참고 최신 버전의 SASS를 사용하고 싶다면 방법 2로 설치합니다.

Ubuntu 16.04 / phpMyAdmin / 특정 IP에서만 접속 가능하게 만드는 방법

Ubuntu 16.04 / phpMyAdmin / 특정 IP에서만 접속 가능하게 만드는 방법

우분투 16.04에서 phpMyAdmin을 패키지로 설치했을 때, 기본 설정은 모든 IP에서 접속 가능입니다. 만약 특정 IP에서만 접속 가능하게 하려면 /etc/apache2/conf-available/phpmyadmin.conf에 다음 코드를 추가합니다. <Directory /usr/share/phpmyadmin> Order deny,allow Deny from all Allow from xxx.xxx.xxx.xxx </Directory> xxx.xxx.xxx.xxx는 접속하려는 IP로 바꿉니다. 여러 IP를 설정하고 싶을 때는 띄어쓰기로 구분합니다. <Directory /usr/share/phpmyadmin> Order deny,allow Deny from all ...

Ubuntu Server / 시간대(time zone) 설정하는 방법

Ubuntu Server / 시간대(time zone) 설정하는 방법

우분투를 설치할 때 시간대 설정을 합니다. 그런데 AWS 같이 OS가 설치된 상태의 가상 서버를 사용하면, 서버의 시간대와 내가 원하는 시간대가 맞지 않을 수 있습니다. 시간대를 어떻게 설정하는지 알아보겠습니다. 현재 서버의 시간대 확인 현재 서버에 설정된 시간대는 date 명령어로 확인할 수 있습니다. root@jb-dev-01:~# date Mon Dec 3 17:03:06 UTC 2018 시간대 설정 - 방법 1 시간대를 ...

Ubuntu 16.04 / Apache / javascript 폴더 접근이 안되는 문제 해결하는 방법

Ubuntu 16.04 / Apache / javascript 폴더 접근이 안되는 문제 해결하는 방법

javascript 폴더 접근 불가 우분투(Ubuntu)에서 아파치(Apache)로 웹서버를 운영할 때 이상한 문제가 하나 발생합니다. 사이트 경로에 javascript가 있으면 forbidden 에러가 나는 것입니다. Forbidden You don't have permission to access /javascript/ on this server. 이 문제가 발생하는 이유는 자바스크립트 설정 때문입니다. /etc/apache2/conf-available/javascript-common.conf에 다음과 같은 코드가 있습니다. Alias /javascript /usr/share/javascript/ javascript로 접속하면 /usr/share/javascript/로 연결시키라는 뜻입니다. 사이트 접속자는 /usr/share/javascript/에 접속 권한이 없으므로 forbidden 에러가 ...

Ubuntu Server / 메모

Ubuntu Server / 메모

MariaDB / 포트 변경 MariaDB의 기본 접속 포트는 3306입니다. 이를 다른 포트로 변경하고 싶다면 /etc/mysql/mariadb.conf.d/50-server.cnf를 수정합니다. port = 3306 을 찾아서 원하는 포트로 변경한 후 저장합니다. 그리고 MariaDB를 재시작합니다. service mysql restart MariaDB / Can't connect to MySQL server on ... (10061) 다음과 같은 에러를 만났다면... Can't connect to MySQL server on ... (10061) /etc/mysql/mariadb.conf.d/50-server.cnf에 있는 bind-address = 127.0.0.1 를 ...

Ubuntu 18.04 / 빠르게 다운로드하는 방법

Ubuntu 18.04 / 빠르게 다운로드하는 방법

우분투 다운로드 우분투 다운로드는 보통 우분투 홈페이지에서 합니다. 상단의 Downloads 메뉴를 클릭하고 안내를 따라가면 됩니다. 그런데, 우분투 홈페이지를 통해 다운로드를 받으면 전송 속도가 느릴 수 있습니다. 만약 너무 느리다면 가까운 미러 사이트에 직접 접속하여 다운로드해보세요. 빠르게 다운로드를 할 수 있습니다. 카카오 서버 한국이라면 카카오 서버가 빠릅니다. 우분투 페이지로 간 다음 원하는 버전을 선택합니다. 데스크톱 이미지와 ...

Ubuntu 18.04 / 메모

Ubuntu 18.04 / 메모

SSH 설정 설정 파일 /etc/ssh/sshd_config 포트 변경하기 다음 코드를 #Port 22 다음처럼 바꾼다. Port 1234 포트 번호는 자신이 원하는 것으로... root 계정 로그인 가능하게 만들기 다음 코드를 #PermitRootLogin prohibit-password 다음처럼 만든다. PermitRootLogin yes 설정 변경 적용하기 service ssh restart

Ubuntu 18.04 / 백신 프로그램 ClamAV 설치 및 사용법

Ubuntu 18.04 / 백신 프로그램 ClamAV 설치 및 사용법

ClamAV ClamAV는 우분투에 사용할 수 있는 백신 프로그램입니다. 패키지에 포함되어 있으므로 쉽게 설치하고 사용할 수 있습니다. 설치 apt install clamav 사용법 데이터베이스 업데이트 데이터베이스 업데이트는 자동으로 됩니다. 만약 수동으로 업데이트를 해야한다면 freshclam 와 같이 명령합니다. 만약 Can't find or parse configuration file /etc/clamav/clamd.conf와 같은 에러가 난다면 대몬을 설치해야 한다고 합니다. apt install clamav-daemon 에러가 나도 바이러스 정의는 업데이트되는 거 같습니다. 꼭 설치해야 ...

Ubuntu 16.04 / hostname 확인하고 변경하는 방법

Ubuntu 16.04 / hostname 확인하고 변경하는 방법

hostname 확인 명령어로 확인하기 다음과 같이 명령하면 hostname을 출력합니다. hostname 설정 파일 열어서 확인하기 텍스트 에디터로 /etc/hostname 파일을 열면 hostname이 적혀있습니다. hostname 변경 명령어로 변경하기 다음과 같이 명령하면 hostname이 abc로 바뀝니다. hostnamectl set-hostname abc 설정 파일 열어서 변경하기 텍스트 에디터로 /etc/hostname 파일을 열어서 내용을 abc로 바꾸면 hostname이 abc로 바뀝니다. 재부팅 재부팅을 하면 위에서 설정한 사항들이 반영됩니다. Ubuntu 16.04 / 고정 IP 설정하는 방법 Ubuntu 18.04 ...

Ubuntu 16.04 / PHP 메모리 늘리는 방법

Ubuntu 16.04 / PHP 메모리 늘리는 방법

php.ini PHP 설정은 php.ini에서 합니다. Ubuntu 16.04에서 php.ini의 위치는 /etc/php/7.0/apache2/php.ini입니다.(PHP 버전에 따라 7.0은 다른 숫자일 수 있습니다.) memory_limit 메모리를 늘리기 위해 수정해야 할 것은 memory_limit입니다. 기본값은 128M입니다. memory_limit = 128M 128을 적절히 변경합니다. 웹서버 다시 시작 또는 다시 로드 변경한 설정이 적용되도록 하려면 웹서버를 다시 시작하거나 다시 로드합니다. Apache 웹서버라면 service apache2 restart 로 다시 시작할 수 있고 service apache2 reload 로 다시 로드할 ...