You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止python-crontab自动将Cron规则转换为别名?

解决python-crontab自动转换Cron规则的问题

一、禁用python-crontab的自动别名转换

python-crontab默认会把标准Cron规则(如0 * * * *、0 0 * * *)自动转为@hourly、@daily这类别名,只需在创建CronTab对象时添加参数禁用该行为:

from crontab import CronTab

# 加载用户crontab并关闭别名自动转换
cron = CronTab(user=True, replace_aliases=False)

添加新任务时,直接用字符串指定原始Cron规则,不要使用库提供的hourly()、daily()封装方法:

# 创建新任务并设置原始规则
job = cron.new(command='/usr/local/bin/your_script.sh')
job.setall('0 * * * *')  # 保持标准规则格式,不会被转为@hourly

# 保存修改
cron.write()

操作后,原有和新增的Cron规则都会保留原始格式,不会被转换为别名。

二、启用系统Cron的别名支持

如果你的系统Cron版本(如多数现代Linux的cronie、Vixie Cron)支持别名但未启用,可手动在crontab或系统配置中定义别名映射:

注意:部分老旧BSD系统的Cron不支持这类别名,此方法仅适用于兼容版本。

在crontab头部添加以下内容:

@hourly 0 * * * *
@daily 0 0 * * *

也可将上述内容写入/etc/cron.d/aliases这类系统级cron配置文件(具体路径依系统而定)。修改后重启cron服务生效:

# systemd系统
systemctl restart cron

# SysVinit系统
service cron restart

内容的提问来源于stack exchange,提问作者Hari Shreyas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:39:18