管理 cron 作业创建的日志文件
- 2024-10-28 08:37:00
- admin 原创
- 54
问题描述:
我有一个 cron 作业,它每天将其日志文件复制到我的主文件夹中。
每天它都会覆盖目标文件夹中的现有文件,这是意料之中的。我想保留以前日期的日志,以便下次将文件复制到目标文件夹时,它会保留以前日期的文件。
我该如何做?
解决方案 1:
管理 cron 日志的最佳方法是对每个作业进行包装。包装器至少可以做以下事情:
初始化环境
将 stdout 和 stderr 重定向到日志
运行作业
检查作业是否成功
如果需要的话发送通知
清理日志
以下是 cron 包装器的简单版本:
#!/bin/bash
log_dir=/tmp/cron_logs/$(date +'%Y%m%d')
mkdir -p "$log_dir" || { echo "Can't create log directory '$log_dir'"; exit 1; }
#
# we write to the same log each time
# this can be enhanced as per needs: one log per execution, one log per job per execution etc.
#
log_file=$log_dir/cron.log
#
# hitherto, both stdout and stderr end up in the log file
#
exec 2>&1 1>>"$log_file"
#
# Run the environment setup that is shared across all jobs.
# This can set up things like PATH etc.
#
# Note: it is not a good practice to source in .profile or .bashrc here
#
source /path/to/setup_env.sh
#
# run the job
#
echo "$(date): starting cron, command=[$*]"
"$@"
echo "$(date): cron ended, exit code is $?"
您的 cron 命令行将如下所示:
/path/to/cron_wrapper command ...
一旦完成,我们就可以调用另一个作业cron_log_cleaner
来删除旧日志。最后从 cron 包装器本身调用日志清理器也不错。
举个例子:
# run the cron job from command line
cron_wrapper 'echo step 1; sleep 5; echo step 2; sleep 10'
# inspect the log
cat /tmp/cron_logs/20170120/cron.log
运行包装的 cron 作业后,日志将包含以下内容:
Fri Jan 20 04:35:10 UTC 2017: starting cron, command=[echo step 1; sleep 5; echo step 2; sleep 10]
step 1
step 2
Fri Jan 20 04:35:25 UTC 2017: cron ended, exit code is 0
解决方案 2:
插入
`date +%F`
执行你的cp
命令,如下所示:
cp /path/src_file /path/dst_file_`date +%F`
所以它将复制src_file
到dst_file_2017-01-20
更新:
正如 @tripleee 注意到的,%
字符应该在 中进行转义cron
,因此您的 cron 作业将如下所示:
0 3 * * * cp /path/src_file /path/dst_file_`date +%F`
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD