使用logrotate+crontab配置celery日志按天切割

本文介绍了如何在Linux系统中使用logrotate工具进行日志轮换。首先,通过`logrotate --help`检查工具是否已安装。接着,创建了一个名为`celery_log_split.conf`的配置文件,用于定义日志切割规则,如每天切割、保留15天、压缩等。特别提到了`copytruncate`选项,该选项在不关闭日志文件的情况下即时截断原始日志,确保程序能继续写入新的日志文件。然后,通过`sudo logrotate -f /yourproject/celery_log_split.conf`测试配置。最后,将logrotate任务添加到crontab中,每天执行一次日志轮换操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)检查系统是否安装了logrotate,默认linux系统自带:
    执行命令:logrotate --help

(2)在任意你想存放的目录下新建一个配置文件,比如我直接放在了项目根目录下:  /yourproject/celery_log_split.conf
/yourproject/logs/celerylog.log {
    daily
    dateext
    missingok
    rotate 15
    compress
    delaycompress
    notifempty
    # 设置切分日志
    copytruncate
}
需要注意,上面内容中的路径需要根据实际进行调整, 另外补充一下配置文件中copytruncate的作用:
​​​​​​​
Truncate the original log file in place after creating a copy, 
instead of moving the old log file and optionally creating a new one.
It can be used when some program cannot be told to close its 
logfile and thus might continue writing (appending) 
to the previous log file forever.


在创建一个副本后,在适当的位置截断原始日志文件,
而不是移动旧的日志文件并有选择地创建一个新的日志文件。
当某些程序不能被告知关闭它的日志文件,因此可能会继续
写(追加)到以前的日志文件时,可以使用它。


(3)测试配置是否正确:
  执行sudo logrotate -f /yourproject/celery_log_split.conf,查看结果是否符合预期

(4)添加到crontab中:
   执行sudo crontab -e进入编辑页面,添加任务到最下方:

# celery log
59 23 * * * sudo logrotate -f /yourproject/celery_log_split.conf >/dev/null 2>&1

(5)验证定时任务是否正常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值