SuperAPI AI 工具集

cron

部署与运维

查看项目

更新于 10-15 23:48

技能介绍

用途:cron 是在 Linux 上按时间计划运行作业的守护进程(Debian/Ubuntu 名为 cron,RHEL/Fedora/Arch 名为 crond),用于定时执行脚本、备份、维护等任务。

主要能力与文件位置:用户 crontab 用 crontab -e 编辑,存于 /var/spool/cron/crontabs/<user>;系统 crontab 为 /etc/crontab,含用户名段,由 cron 直接读取;drop-in 目录 /etc/cron.d/ 使用与 /etc/crontab 相同的语法,必须带用户名字段;run-parts 目录包括 /etc/cron.hourly/、/etc/cron.daily/、/etc/cron.weekly/、/etc/cron.monthly/。日志通过 journalctl -u cron(或 crond)查看,也可见于 /var/log/syslog(Debian)或 /var/log/cron(RHEL)。安装:apt install cron 或 dnf install cronie。

常用操作:crontab -l 列出当前用户任务;crontab -e 编辑;crontab -r 删除当前用户整份 crontab(无确认,建议先用 crontab -l > ~/crontab.bak 备份);root 可用 crontab -u username -e/-l/-r 管理其他用户;ls /var/spool/cron/crontabs/ 与 cat /etc/crontab、ls /etc/cron.d/ 查看任务;journalctl -u cron --since today 或 grep CRON /var/log/cron 查看日志;run-parts /etc/cron.daily 可手动运行 run-parts 目录。

常见限制与排障:cron 环境极简,PATH 很短,命令应使用绝对路径或在顶部设置 PATH=;默认不设 HOME、USER、LANG、DISPLAY 等变量;stdout/stderr 会被邮寄给 crontab 所有者,若未配置邮件则输出丢失,应重定向到日志文件并设 MAILTO="";默认 shell 是 /bin/sh,需要 bash 行为时设 SHELL=/bin/bash;时区问题可在顶部设 TZ;DOW 字段 0 和 7 都表示周日;/etc/cron.d/ 缺用户名字段会被静默误读;run-parts 会跳过文件名含点的脚本(如 backup.sh);脚本在手动运行时正常但在 cron 中失败,通常是环境变量缺失或脚本无执行权限。表达式测试可参考 crontab.guru,更多内容见资料 references/ 中的 crontab.annotated 与 docs.md。