Динамическое создание папки журнала

Есть ли способ динамически создавать структуру папок журнала? Я просматриваю Google, но нахожу только способ изменить путь к каталогу журнала. Что я хочу сделать, так это сохранить файл журнала по дате. Как apache2 / 2017/01/01 / error.log. Я использую стек centos 7 LAMP и стек ubuntu 16.04 LTS LAMP.

apache2/
     -2017/
         -01/
             -01/error.log
             -02/error.log
0
задан 20 January 2017 в 08:00
1 ответ

Чтобы создать динамический каталог, вы можете написать сценарий, который определяет текущую дату (дд, мм, гггг) и использовать команду mkdir с ключом -p для его создания.

Попросить демон 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]#
0
ответ дан 5 December 2019 в 08:43

Теги

Похожие вопросы