IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

linux下计划任务crontab学习笔记

SourceJoy 2010-09-06 08:53:36 累计浏览 4,141 次
本机暂存

计划任务,就是定时执行任务,windows下的计划任务由于是图形界面,操作十分简单,linux的就有点晦涩了,不过难了不会,会了不难,仔细学习一番之后,发觉也还算简单。本文做个学习记录。
linux定时任务管理器全名为crontab


定时任务服务是由cron这个linux内置服务提供的。

cron服务的相关命令:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置


开机启动cron服务:
在/etc/rc.d/rc.local这个脚本的末尾加上
/sbin/service crond start


crontab分为用户的crontab和系统的crontab。

用户要建立定时任务要使用crontab命令。

为安全起见,管理员可以限制使用crontab命令的帐号。

在/etc/cron.allow和/etc/cron.deny 两个文件中写入允许使用crontab和不允许的帐号。一个帐号一行。
/etc/cron.allow比/etc/cron.deny 要优先。
用户使用crontab建立任务后,该项工作就被记录到/var/spool/cron/目录下的帐号对应文件中。
cron没执行一项工作都会记录到/var/log/cron这个记录文件中。

crontab命令语法:
crontab [-u 用户名] [-l|-e|-r]

参数:
-u root用户特有,帮助其他用户设置crontab
-e 编辑crontab
-l 查看crontab
-r 删除crontab

如:
crontab -e
进入vi编辑界面
0 12 * * * /usr/sbin/ntpdate 211.100.44.148 > /dev/null

前面5个是控制时间的,分别为:
分(0~59) 时(0~23) 日(1~31) 月(1~12) 周(0~7,0和7都是星期天),后面都是命令串。

辅助符号:
* 表示任何时间都接受,如上例中 日月周都是*,表示每天,每月,星期几都是12点执行
, 逗号,间隔时段,比如每天1点和13点表示为:0 1,13 * * *
- 减号,表示范围,如:每天1点好12点之间,每个小时的第30分执行一次:30 1-12 * * * ...
/n n数字,表示每隔n单位时间,如每隔10分钟一次:*/10 * * * *


crontab里面的命令最好要用绝对路径。


系统的crontab
系统的crontab是以配置文件形式存在的,文件路径为/etc/crontab,我们直接编辑这个文件就行了。

通常 cron服务的最低检测限制是“分钟”,所以cron每分钟读取一次/etc/crontab与/var/spool/cron中的数据内容。

重启crond服务 :
/etc/init.d/crond restart

/etc/crontab的内容和用户的cron内容有点不一样:
cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/


# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
00 1 * * * root /root/sh/web_bak.sh
20 1 * * * root /root/sh/web_upload.sh


几个列和用户的cron大概一样,中间多出的一列是执行者身份


上面的一排,是一些常量设置:
MAILTO 当/etc/crontab中的命令错误时,或执行结果有STDOUT/STDERR时,会将消息传给谁
PATH 执行路径


注意其中的runparts 命令,是执行某个目录下的所有脚本。这个runparts如果深究起来就比较麻烦了,如果各位有兴趣可以自己深入研究一下。

cron计划任务的知识,常用的差不多就这么多啦~

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. python实现自动登录discuz论坛 (累计阅读 32,833)
  2. Linux如何统计进程的CPU利用率 (累计阅读 16,307)
  3. 我的 RHCA 之路 (累计阅读 14,011)
  4. Linux内存点滴 用户进程内存空间 (累计阅读 13,228)
  5. 给程序员新手的一些建议 (累计阅读 13,087)
  6. Linux 性能监控、测试、优化工具 (累计阅读 13,010)
  7. 关于linux内存free的一些事情 (累计阅读 12,865)
  8. ps - 按进程消耗内存多少排序 (累计阅读 12,685)
  9. Google怎么用linux (累计阅读 12,580)
  10. Linux Used内存到底哪里去了? (累计阅读 11,866)