当前位置:首页>Linux>Linux计划任务实操:一次性+周期性任务配置全掌握

Linux计划任务实操:一次性+周期性任务配置全掌握

  • 2026-09-18 00:31:10
Linux计划任务实操:一次性+周期性任务配置全掌握

技术弄巷

读完仅需

5
分钟

记得星标公众号

前言

在Linux运维工作中,很多场景需要让系统自动执行指定操作,比如定时备份数据、定时同步时间、定时执行脚本,手动操作不仅繁琐还容易遗漏。计划任务就是解决这个问题的核心方案,Linux提供了一次性计划任务和周期性计划任务两种方式,满足不同的自动执行需求。本文全程以实操为主,从服务依赖到命令配置、时间规则解读,零基础也能快速上手,让你的Linux系统实现自动化运维。

一、计划任务两大分类

Linux的计划任务按执行频率分为两类,分别适用于不同场景,核心依赖系统专属服务,需保证服务正常运行:

  • 一次性任务
    :仅在指定的某个时间点执行一次,适合临时的、单次的操作需求,依赖atd服务;
  • 周期性任务
    :按指定的时间规则(分/时/日/月/周)重复执行,适合常规的、重复的运维操作,依赖crond服务。

二、一次性计划任务(atd)

仅执行一次的临时计划任务,核心命令为at,前提是保证atd服务正常运行,否则任务无法生效。

1. 检查atd服务状态(必备前置)

# 查看atd服务运行状态
systemctl status atd

核心状态解读

输出中出现active (running)表示服务正常运行;若显示inactive (dead)需执行systemctl start atd && systemctl enable atd启动并设置开机自启。

● atd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2022-07-25 10:38:47 CST; 1s ago # 服务正常运行
 Main PID: 7722 (atd) # 服务主进程PID

2. 设置一次性计划任务(核心命令:at)

命令格式

at 指定执行时间

实操步骤(全程交互式操作)

以10:41执行创建/tmp/abc目录为例,步骤如下:

# 1. 输入命令指定执行时间,回车进入交互式编辑界面
[root@localhost ~]# at 10:41
# 2. 输入需要执行的命令,每行一个操作
at> mkdir /tmp/abc
# 3. 按【Ctrl + D】提交任务,终端会返回任务编号和执行时间
at> <EOT>
job 2 at Mon Jul 25 10:41:00 2022

时间指定技巧

除了具体时间时:分,还支持更灵活的写法,满足不同临时需求:

  • 几分钟后执行:at now +5 minutes(5分钟后)
  • 几小时后执行:at now +2 hours(2小时后)
  • 具体日期时间:at 14:30 2026-01-26(2026年1月26日14:30)

三、周期性计划任务(crond)

Linux最常用的计划任务方式,可按分、时、日、月、周的规则重复执行操作,是自动化运维的核心工具,依赖crond服务,需保证服务正常运行。

1. 检查crond服务状态(必备前置)

# 查看crond服务运行状态
systemctl status crond

核心状态解读

输出中active (running)为正常运行状态;若未运行,执行systemctl start crond && systemctl enable crond启动并开机自启(Crond是Linux系统默认开机自启的核心服务)。

● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2022-07-25 09:10:17 CST; 1h 33min ago
 Main PID: 6184 (crond)

2. 设置周期性计划任务(核心命令:crontab -e)

crontab -e用于编辑当前用户的周期性计划任务,操作方式与vim编辑器一致(编辑完成按Esc,输入:wq保存退出),创建/修改任务均使用该命令。

# 编辑周期性计划任务
crontab -e

3. crontab核心规则:时间字段写法(重中之重)

编辑任务时,每行一个任务,任务格式严格遵循「时间规则 + 执行命令」,时间规则分为5个字段,顺序固定,字段之间用空格分隔:

分  时  日  月  周     需执行的命令/脚本
# 第1列:分钟(0-59)  第2列:小时(0-23)  第3列:日期(1-31)  第4列:月份(1-12)  第5列:星期(0-7,0和7均代表周日)

常用时间规则实例(直接套用)

结合实际运维场景,整理了高频的时间写法,覆盖单次、区间、间隔、指定日期等所有常用场景,直接复制即可使用:

需求场景
时间规则写法
规则解读
每天晚上十点半执行
30 22 * * *
22点30分,日/月/周为*表示任意时间
每周三上午九点执行
0 9 * * 3
9点0分,每周三(3代表周三)
每天8:30、9:30、10:30执行
30 8-10 * * *
8-10点的30分,-表示区间
每周一到周四晚上八点执行
0 20 * * 1-4
20点0分,每周一至周四(1-4)
每周一/三/五晚上十一点半执行
30 23 * * 1,3,5
23点30分,指定周一、三、五(,表示分隔)
每隔半个小时执行一次
*/30 * * * *
任意时间,每30分钟(*/n表示每隔n个单位)
上午8点到下午4点,每隔2小时执行
0 8-16/2 * * *
8/10/12/14/16点的0分,8-16区间内每隔2小时

4. crontab操作核心注意事项(避坑关键)

很多同学配置完计划任务后不生效,大多是因为忽略了以下细节,这两点是实操的重中之重,必须严格遵守:

注意1:执行命令必须使用绝对路径

crond服务的执行环境没有系统环境变量,使用相对路径会导致命令无法识别,需用绝对路径执行命令。可通过which 命令查询命令的绝对路径:

# 示例:查询touch命令的绝对路径
which touch
# 输出:/usr/bin/touch → 这就是touch的绝对路径

注意2:命令中的%符号必须转义为\%

%在crontab中有特殊含义(表示换行),若执行的命令中包含%(如date日期格式化),必须在前面加反斜杠\转义,否则任务执行失败。

5. 查看周期性计划任务(核心命令:crontab -l)

crontab -l用于查看当前用户已配置的所有周期性计划任务,直接执行即可输出所有任务的时间规则和执行命令:

# 查看已配置的周期性计划任务
crontab -l

实操示例(含完整可运行任务)

以下为实际配置的任务示例,包含绝对路径使用、%转义、重定向屏蔽输出等实操技巧,可直接参考配置:

# 示例1:每分钟在/tmp创建一个随机10位十六进制名称的文件(touch绝对路径:/usr/bin/touch)
*/1 * * * *   /usr/bin/touch /tmp/$(/usr/bin/openssl rand -hex 10)
# 示例2:每分钟在/tmp创建以「日期_时间」命名的目录(date的%转义为\%,mkdir绝对路径:/usr/bin/mkdir)
*/1 * * * *  /usr/bin/mkdir /tmp/$(/usr/bin/date +\%F_\%T)
# 示例3:每2小时同步一次时间,屏蔽所有输出(&> /dev/null表示不生成日志,ntpdate绝对路径:/usr/sbin/ntpdate)
* */2 * * * /usr/sbin/ntpdate 120.25.115.20 &> /dev/null

四、总结

  1. 计划任务分两类:一次性任务用at(依赖atd服务),周期性任务用crontab(依赖crond服务),先检查服务运行状态是前提;
  2. 一次性任务:at 时间进入交互界面,输入命令后按Ctrl+d提交,支持灵活的时间写法;
  3. 周期性任务核心:crontab -e编辑、crontab -l查看,时间规则为「分 时 日 月 周」5个固定字段;
  4. crontab避坑两点:命令必须用绝对路径,%需转义为\%;
  5. 时间规则快速套用:-表示区间、,表示指定多个、*/n表示每隔n个单位,*表示任意。

所有命令均为Linux原生命令,无需额外安装,CentOS、Ubuntu等主流发行版通用,直接复制即可实操,轻松实现Linux系统自动化操作!


💡 这份Linux计划任务实操指南从服务检查到时间规则、避坑技巧,一站式搞定自动化运维核心需求! 赶紧点赞+收藏,下次需要配置定时任务时,直接打开就能用,省去翻查资料的时间~ 📢 关注本公众号,后续会持续更新Linux运维干货,从基础命令到高级实战、故障排查,手把手教你搞定Linux系统管理,让你的运维工作效率翻倍! 👇 评论区聊聊你平时最常用的定时任务场景,一起交流更多配置技巧吧~

最新文章

随机文章