동적으로 로그 폴더 생성

동적으로 로그 폴더 생성

로그 폴더 구조를 동적으로 생성하는 방법이 있습니까? Google을 탐색했지만 로그 디렉토리 경로를 변경하는 방법만 찾았습니다. 제가 하고 싶은 것은 로그 파일을 날짜별로 보관하는 것입니다. apache2/2017/01/01/error.log와 같습니다. 저는 centos 7 LAMP 스택과 ubuntu 16.04 LTS LAMP 스택을 사용하고 있습니다.

apache2/
     -2017/
         -01/
             -01/error.log
             -02/error.log

답변1

동적 디렉터리를 생성하려면 현재 날짜(dd,mm,yyyy)를 감지하는 스크립트를 작성하고 '-p' 스위치와 함께 mkdir 명령을 사용하여 생성할 수 있습니다.

Apache httpd 데몬에게 요청하는 것은 까다로울 수 있습니다. cron 작업에서 실행되는 래퍼 스크립트 스크립트를 작성하고 싶을 수도 있습니다.

또는 날짜/시간 또는 상태에 따라 logrotate를 통해 트리거할 수도 있습니다(logrotate).

대략적인 방법은 다음과 같습니다.

#!/bin/bash

DATE_YEAR=`date +%Y`
DATE_MONTH=`date +%m`
DATE_DAY=`date +%d`

mkdir -p /var/log/httpd/${DATE_YEAR}/${DATE_MONTH}/${DATE_DAY}

CLI에서의 실행 예:

[root@backend-0-0 hello-world]# echo $DATE_YEAR
2017
[root@backend-0-0 hello-world]# echo $DATE_MONTH
01
[root@backend-0-0 hello-world]# echo $DATE_DAY
20
[root@backend-0-0 hello-world]#
[root@backend-0-0 hello-world]#
[root@backend-0-0 hello-world]#
[root@backend-0-0 hello-world]# mkdir -p ${DATE_YEAR}/${DATE_MONTH}/${DATE_DAY}


[root@backend-0-0 hello-world]# find ${DATE_YEAR}
2017
2017/01
2017/01/20
[root@backend-0-0 hello-world]#

[root@backend-0-0 hello-world]# tree ${DATE_YEAR}
2017
└── 01
    └── 20

2 directories, 0 files
[root@backend-0-0 hello-world]#

관련 정보