一聚教程网:一个值得你收藏的教程网站

热门教程

Linux 服务器定时任务配置如何写

时间:2026-08-10 10:48:49 编辑:袖梨 来源:一聚教程网

Linux服务器定时任务依赖crond服务运行,需用crontab -e按“分 时 日 月 周 命令”格式编写,命令须用绝对路径,并配置PATH、SHELL环境变量及日志输出以确保稳定执行。

Linux 服务器定时任务主要靠 crontab 实现,核心是写对时间格式和命令路径。配置不难,但细节错一点就执行失败。

先确认 cron 服务是否运行

定时任务依赖后台的 cron 守护进程,得先确保它开着:

  1. 查看状态:systemctl status crond(CentOS/RHEL)或 systemctl status cron(Ubuntu/Debian)
  2. 若未运行,启动它:systemctl start crond 并设为开机自启:systemctl enable crond

用 crontab -e 编辑自己的任务

普通用户执行 crontab -e 即可编辑专属任务(无需改系统文件,更安全)。首次会提示选编辑器,选 nanovim 都行。

  1. 每行一条任务,格式固定:「分 时 日 月 周 命令」,共6个字段,用空格分隔
  2. 例如:30 2 * * * /bin/bash /home/user/backup.sh 表示每天凌晨2:30执行脚本
  3. 注意:命令必须用绝对路径which backup.sh 可查路径),否则 cron 找不到

时间字段怎么填才准确

5个时间位从左到右分别是:分钟(0–59)、小时(0–23)、日期(1–31)、月份(1–12)、星期(0–6,0和7都代表周日)。

  1. * 表示“任意值”,比如 * * * * * 是每分钟执行一次
  2. */10 表示“每隔10单位”,如 */10 * * * * 是每10分钟执行一次
  3. 1,15 表示“多个离散值”,如 0 1,13 * * * 是每天1点和13点整执行
  4. 1-5 表示“范围”,如 0 9 * * 1-5 是工作日早上9点执行

让脚本稳稳跑起来的几个关键点

很多任务写完不执行,往往不是时间错了,而是环境或权限问题:

  1. 在 crontab 文件开头加两行,显式声明环境:

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

    SHELL=/bin/bash

  2. 如果脚本依赖某些变量(比如 Python 虚拟环境),建议在脚本第一行加 #!/usr/bin/env bash,并在脚本内 source ~/.bashrc 或直接激活环境
  3. 输出日志便于排查:30 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1
  4. 测试时可先设个1分钟后执行的任务(如 $(date -d '+1 minute' +%M) $(date -d '+1 minute' +%H) * * *),验证是否触发

热门栏目