Ubuntu定时任务Cron

2026-07-01 86

很多服务器维护工作并不需要每天手动执行,例如备份网站文件、清理缓存、检测服务状态和生成报表。Ubuntu 可以通过 Cron 定时任务自动完成这些重复操作。本篇教程介绍 crontab 的基本用法、时间格式、脚本执行和常见排查方法,帮助站长把日常维护流程自动化。

一、Cron 适合做什么

Cron 是 Linux 系统中常用的定时任务工具,Ubuntu 服务器也经常使用它来自动执行任务。

常见场景包括:

  1. 定时备份网站文件;
  2. 定时备份数据库;
  3. 定时清理缓存;
  4. 定时执行脚本;
  5. 定时生成报表;
  6. 定时检测服务状态。

对站长来说,Cron 的价值是把重复操作自动化。但定时任务一旦写错,也可能反复执行错误操作,所以配置前要先测试脚本。

二、编辑当前用户的 crontab

编辑当前用户定时任务:

crontab -e

查看当前用户定时任务:

crontab -l

第一次执行 crontab -e 时,系统可能会让你选择编辑器。新手可以选择较容易使用的编辑器。

Cron 常见格式是:

分钟 小时 日期 月份 星期 命令

例如每天凌晨 2 点执行:

0 2 * * * /path/to/script.sh

每 10 分钟执行一次:

*/10 * * * * /path/to/script.sh

三、先写一个可手动执行的脚本

不要一开始就把复杂命令塞进 crontab。更好的方式是先写脚本,再让 Cron 定时执行脚本。

例如创建脚本:

nano /home/ubuntu/backup.sh

脚本写好后,添加执行权限:

chmod +x /home/ubuntu/backup.sh

先手动执行:

/home/ubuntu/backup.sh

只有手动执行成功后,再加入定时任务。

四、定时任务要使用绝对路径

Cron 执行环境和你手动登录终端时不完全一样。很多任务手动执行正常,但放进 Cron 失败,原因是路径或环境变量不同。

建议:

  1. 命令使用绝对路径;
  2. 脚本路径使用绝对路径;
  3. 输出日志写到明确位置;
  4. 不依赖当前目录;
  5. 必要时在脚本里设置环境变量。

例如:

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

这样可以把执行输出写入日志,方便排查。

五、查看 Cron 是否执行

如果任务没有按预期执行,可以查看系统日志。不同 Ubuntu 环境日志位置可能不同,可以通过系统日志或 journalctl 检查 cron 相关记录。

常见排查方向包括:

  1. crontab 是否保存成功;
  2. 时间格式是否写错;
  3. 脚本是否有执行权限;
  4. 路径是否使用绝对路径;
  5. 脚本手动执行是否正常;
  6. 执行用户是否有权限;
  7. 系统时区是否正确。

如果怀疑是时区问题,可以结合本系列的 Ubuntu 时间同步教程检查。

六、定时备份要注意保留周期

很多站长会用 Cron 做自动备份,但只备份不清理也会造成磁盘爆满。

建议设置备份策略:

  1. 每天备份一次;
  2. 保留最近 7 天;
  3. 每周保留一个长期版本;
  4. 定期同步到其他存储位置;
  5. 定期测试能否恢复。

备份的重点不是“生成了文件”,而是“需要时能恢复”。如果从来没有测试过恢复,备份可靠性就无法确认。

七、修改定时任务后要记录

每次新增或修改 Cron 任务,都建议记录:

  1. 任务用途;
  2. 执行时间;
  3. 执行用户;
  4. 脚本路径;
  5. 日志路径;
  6. 最近一次验证结果。

服务器时间久了,定时任务可能越来越多。没有记录的话,后续很难判断某个脚本是否还能删除。

FAQ

Q1:Cron 任务手动执行成功,定时不执行怎么办?

A:重点检查路径、权限、环境变量、执行用户和日志输出。Cron 环境和手动终端环境不完全一样。

Q2:定时任务可以用相对路径吗?

A:不建议。最好使用绝对路径,避免 Cron 执行时找不到文件或目录。

Q3:自动备份是不是越多越好?

A:不是。备份要有保留周期和恢复验证,否则可能占满磁盘,还不能保证真正可用。

  • 广告合作

  • QQ群号:4114653

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。