在 CentOS 中,crontab 用来设置定时任务。下面从 基本用法 → 配置示例 → 常见问题 给你一个完整说明。
crontab -e # 编辑当前用户的定时任务
crontab -l # 查看当前用户的定时任务
crontab -r # 删除当前用户的所有定时任务(慎用)
crontab -u user -e # 编辑指定用户的定时任务(需 root)
CentOS 默认使用
cronie服务
* * * * * command
│ │ │ │ │
│ │ │ │ └─ 星期 (0-7,0和7都表示周日)
│ │ │ └─── 月份 (1-12)
│ │ └───── 日期 (1-31)
│ └─────── 小时 (0-23)
└───────── 分钟 (0-59)
30 2 * * * 每天凌晨 2:30
0 0 * * 0 每周日 0:00
*/5 * * * * 每 5 分钟
0 9-18 * * 1-5 工作日 9点到18点整
* * * * * /home/user/test.sh
0 3 * * * /usr/bin/bash /root/backup.sh >> /root/backup.log 2>&1
crontab -u www -e
0 1 * * * php /var/www/html/artisan schedule:run
路径:
/etc/crontab
/etc/cron.d/
格式(多了用户字段):
* * * * * user command
示例:
0 4 * * * root /usr/sbin/logrotate
systemctl status crond
systemctl start crond
systemctl enable crond
cron 环境很少变量,建议:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
或在脚本里写全路径
chmod +x test.sh
tail -f /var/log/cron
crontab -e
*/1 * * * * /bin/echo "cron test" >> /tmp/cron_test.log
等一分钟看:
cat /tmp/cron_test.log
如果你有 具体场景(比如:定时重启、备份 MySQL、执行 Python 脚本),我可以直接帮你写 crontab。