温馨提示×

debian crontab怎么用

小樊
41
2026-10-25 18:54:43
栏目: 智能运维

在 Debian(以及大多数 Linux 发行版)中,crontab 用来定时执行任务(类似于 Windows 的计划任务)。下面从基础到常用示例一步步说明。


一、crontab 基本概念

  • cron:后台服务,负责按计划执行任务
  • crontab:用户用来管理自己定时任务的命令
  • 每个用户可以有自己的 crontab(包括 root)

二、常用命令

1. 编辑当前用户的定时任务

crontab -e

第一次使用会让你选择编辑器(推荐 nano 或 vim)

2. 查看当前用户的定时任务

crontab -l

3. 删除当前用户的所有定时任务

crontab -r

4. 编辑指定用户的 crontab(需要 root)

crontab -u username -e

三、crontab 时间格式(重点)

每一行格式如下:

分 时 日 月 星期 命令
字段 含义 范围
分 分钟 0–59
时 小时 0–23
日 日期 1–31
月 月份 1–12
星期 星期几 0–7(0 和 7 都是周日)

四、常见示例

1. 每分钟执行一次

* * * * * /home/user/test.sh

2. 每天凌晨 2 点执行

0 2 * * * /home/user/backup.sh

3. 每 5 分钟执行

*/5 * * * * /home/user/check.sh

4. 每周一早上 7 点

0 7 * * 1 /home/user/weekly.sh

5. 每月 1 号 0 点

0 0 1 * * /home/user/month.sh

五、输出与日志

默认 cron 执行结果会通过邮件发给用户(通常没配置邮件就看不到)

推荐做法:重定向日志

0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1

六、环境变量注意点(很重要)

cron 的环境非常干净,不会加载你的 .bashrc

常见问题:

  • python 找不到
  • PATH 不对

✅ 建议写绝对路径:

0 2 * * * /usr/bin/python3 /home/user/a.py

或手动设置环境变量:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

七、系统级 cron(可选)

系统任务目录

/etc/cron.daily/
/etc/cron.hourly/
/etc/cron.weekly/
/etc/cron.monthly/

放入脚本即可自动执行(无需 crontab)


八、查看 cron 服务状态

systemctl status cron

启动 / 重启:

sudo systemctl start cron
sudo systemctl enable cron

九、调试技巧

手动执行命令,确认没问题:

/home/user/test.sh

查看 cron 日志(Debian):

grep cron /var/log/syslog

如果你愿意,可以告诉我:

  • 你是 普通用户还是 root
  • 想 多久执行一次
  • 执行的是 脚本 / 命令 / 程序

我可以直接帮你写一条可用的 crontab 配置。

0 踩