如何为 crontab 日志创建文件夹(如果不存在),并根据日期将日志写入特定文件夹



我每分钟都有 crontab 作业运行。此 cron 作业记录到

/tmp/result_"`date +%dd_%mm_%Y_%Hh_%Mmin_%Ssec`".log

如何使 cron 作业按文件夹存储日志的方法如下:

  1. 如果year不存在,则创建文件夹(按年份命名,如 2018(
  2. year文件夹中创建(如果不存在(month文件夹(如march或月份编号(
  3. 在月文件夹中,如果不存在,则创建日文件夹(日数(

    然后:将每分钟的日志存储在特定日期文件夹中。

另外,现在我每分钟将日志写入/tmp/*,我有很多这样的日志文件result_04d_03m_2018_20h_39min_01sec.log 如何解析所有这些文件并根据其名称创建,每年/每月/每天/文件夹并将特定日志移动到其文件夹?

我假设日志文件是使用重定向创建的。所以我建议以下方法:

# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7)
# |  |  |  |  |
# *  *  *  *  *     command to be executed 
  *  *  *  *  *     mkdir -p `date "+/logdir/%Y/%m/%d"` && command > `date +/logdir/%Y/%m/%d/result_%dd_%mm_%Y_%Hh_%Mmin_%Ssec` 2>&1

命令mkdir -p dir1/dir2/dir3将创建所需的每个目录和子目录。在这种情况下,它将/logdir/YYYY/MM/DD

最新更新