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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为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

以上是关于如何为crontab日志创建文件夹(如果不存在),并根据日期将日志写入特定文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

Linux 指令学习之crontab

Linux 定时执行shell脚本命令之crontab

Linux日志管理神器之Logrotate日志分割,以及crontab定时轮询

如何为单个项目中运行的每个批次创建单独的日志文件?

如何为 grails 插件配置日志记录?

如何为 crontab 设置 virtualenv?