로그 폴더 구조를 동적으로 생성하는 방법이 있습니까? 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]#