技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Linux --> linux下计划任务crontab学习笔记

linux下计划任务crontab学习笔记

浏览:3088次  出处信息

计划任务,就是定时执行任务,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. ubuntu定时执行任务crontab的使用    (阅读:3746)
  2. crontab异常,无法自动运行    (阅读:3404)
  3. SHELL TIPS: rsync 和 crontab 变量    (阅读:2988)
  4. Linux cron运行原理    (阅读:2558)
  5. crontab用法说明    (阅读:2070)
  6. 实用命令行工具详解(五)—crontab    (阅读:2075)
  7. 一句话crontab实现防ssh暴力破解    (阅读:2597)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1