動態建立日誌資料夾

動態建立日誌資料夾

有沒有辦法動態建立日誌資料夾結構?我瀏覽谷歌,但我只找到了一種更改日誌目錄路徑的方法。我想做的就是按日期儲存日誌檔案。如 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]#

相關內容