转载:http://i.592.net/?post=276

Debian的定时执行命令Crontab,这个相当于Windows的计划任务

想要让Debian定时执行命令就得靠crontab了!
    它的功能类似微软的计划任务,可以在您设定的时间执行你想要的命令。
    通过编写设定文件可以组合出复杂的执行时段,让命令的执行更加有效率。

cron设置文件在Debian系统下的位置
   /etc/crontab

大致内容如下:

01 # /etc/crontab: system-wide crontab
02 # Unlike any other crontab you don't have to run the `crontab'
03 # command to install the new version when you edit this file.
04 # This file also has a username field, that none of the other crontabs do.
05  
06 SHELL=/bin/sh
07 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
08  
09 # m h dom mon dow user command
10 17 * * * * root run-parts --report /etc/cron.hourly
11 25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily
12 47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly
13 52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly
14 0 20 1 * * root /usr/bin/updatedb
15 #

需要设定的是 # m h dom mon dow user command 下面的部份
由左至右相对应的意思为:

分0-59   时0-23   日1-31   月1-12   周0-7  执行命令的用户   命令

其中比较有意思的是:周,0和7都代表星期日

而可以使用的特殊符号有

* (星号)   代表所有时间都接受
, (逗号)   代表同一个分类可以有多少个值
- (减号)   代表在这个时段内执行
/n          代表每n个时间就执行一次

范例:

30 12 * * * command:   <em>每天12:30执行command</em>
0 6,12 15 * * command:<em>每月15日的6:00和12:00执行command</em>
10 8 1-15 6 * command:<em>每年6月1至15日的8:10执行command</em>
*/5 * * * 7 command:   <em>星期日每隔五分钟执行一次command</em>

定时器语法:
就是上面计划任务的第一部分。它决定了何时执行计划任务。

它包含5部分:
  1.分钟(0-59)
  2.小时(0-23)
  3.一个月的哪一天(1-31)
  4.一年中的哪个月(1-12)
  5.星期几(0是星期天)

星号  如果某个部分出现的是星号而不是数字,就是说明这个部分表示的时间全部会执行。

可能一时不太容易说清楚,再看例子吧。

示例:
   1、下面的计划任务会一直运行
        * * * * * [command]

2、下面的计划任务会在每个小时的0分时运行(就是每小时执行一次)
        0 * * * * [command]

3、下面依旧是一个每小时运行一次的计划任务。不过是在每个小时的一刻钟时运行的(1:15,2:15.。。)
       15 * * * * [command]

4、下面的计划任务每天执行一次,在2:30分
        30 2 * * * [command]

5、下面的计划任务是在每个月2号的午夜执行(比如:2010年2月2日00:00)
        0 0 2 * * [command]

6、下面的计划任务会在每周一的每个小时0分钟时执行一次
        0 * * * 1 [command]

7、下面的会每小时运行3次,在0分,10分,和20分时
        0,10,20 * * * * [command]

8、下面是用除号“/”表示每多少运行一次。

*/5 * * * * [command]    每5分钟运行一次

00 */2 * * * [command]    每2小时运行一次 (* */2 * * * [command]  这种写法是错误的!)

    */1 * * * * root wget -O /var/log/cron.txt
http://www.592.net/test.php    每分钟访问网站某PHP脚本一次,检查是否每分钟自动运行了PHP,可以查看
var/log/cron.txt文件,看下是否有网站PHP返回的内容就可以了!

9、还可以用“-”表示一个范围,如下表示5到10点的每个整点运行一次
        0 5-10 * * * [command]

10、另外还有一个特殊的时间关键字“@reboot”,就是每次重启服务器时运行计划任务
        @reboot [command]

设定和管理计划任务
    编辑Crontab,来设定计划任务。使用下面的命令,会在vi 里打开crontab的内容以供编辑:
crontab -e

如果你只想看看,不需要编辑,可以使用以下的命令
crontab -l

要删除crontab的内容,就是删除所有的计划任务,可以这样:
crontab -r

cron是个linux下的定时执行工具,能在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但他不自动起来,能用以下的方法启动、关闭这个服务:

编辑/etc/crontab 文件配置cron

  cron服务每分钟不仅要读一次 /var/spool/cron 内的所有文件,还需要读一次 /etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
  SHELL=/bin/bash
  PATH=/sbin:/bin:/usr/sbin:/usr/bin
  MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
  HOME=/ //使用者运行的路径,这里是根目录
  # run-parts
  01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
  02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
  22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
  42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本

  大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。

重启命令:
Debian
    /etc/init.d/cron restart

Linux
    /etc/rc.d/init.d/crond restart

Debian的定时执行命令Crontab的更多相关文章

  1. linux后台执行命令crontab

    有如下几种方式: crontab at & nohup 1. crontab 定时执行任务 # crontab -e //编辑crontab配置文件 Select an editor. To ...

  2. linux定时执行任务crontab命令用法

    linux系统的定时任务是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另外, 由于使用者自己也可以设置计划任务,所 ...

  3. Linux下定时执行任务(crontab命令)

    1.循环执行的计划任务 linux下面有atd和crond两种计划任务,其中,atd服务使用的at命令只能执行一次,而crond服务使用的crontab定义的命令,是循环作用的,所以crond才符合我 ...

  4. linux 定时执行任务 crontab

    欲编写定时任务访问网页和打开图片 原来写法为 #!/bin/bash #可以执行 echoecho "Hello" > dir/file.txt #不可以执行 xdg-ope ...

  5. bat 批处理脚本定时执行命令

    有个需求,需要每天定时执行下某个任务,一天一次.由于工作机器环境问题,没有办法设置windows 定时任务.查找资料并完成如下脚本. 功能:每天定时执行一次任务. 复制如下脚本,到一个test.vbs ...

  6. bat实现每天定时执行命令[windows底下每天重启一下Nginx]

    --试验通过--Windows环境脚本名称:restart.bat脚本内容: @echo offtaskkill /f /fi "IMAGENAME eq nginx.exe"cd ...

  7. ubuntu定时执行任务——crontab的使用

    先补上几个链接,后续再总结 #参考# http://www.cnblogs.com/kaituorensheng/p/4494321.html http://blogread.cn/it/articl ...

  8. Linux下的crontab定时执行任务命令详解

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为“cr ...

  9. (二)Linux下的crontab定时执行任务命令详解

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为&qu ...

随机推荐

  1. 40 个顶级 jQuery 图片、内容滑块和幻灯片(转)

    在这个快速发展的网络世界中,我们使用图片.内容滑块和幻灯片来给网站实现良好.有吸引力的外观.你可以吸引浏览者借助图像滑块让网站更加具有活力.使用 JavaScript 可以轻松实现轻量级的图片和内容滑 ...

  2. Liunx更新源

    不同的网络状况连接以下源的速度不同, 建议在添加前手动验证以下源的连接速度(ping下就行),选择最快的源可以节省大批下载时间. 首先备份源列表: sudo cp /etc/apt/sources.l ...

  3. 咏南WEB开发框架

    和咏南CS开发框架共享同一个咏南中间件.

  4. oracle学习 四(持续更新中)无法为表空间 MAXDATA 中的段创建 INITIAL 区

    解决建立表的时候出现的 ORA-01658: 无法为表空间 MAXDATA 中的段创建 INITIAL 区 出现这个问题是因为表空间的大小不足,可以给他扩容这样的话也会多出来一个数据文件.具体写法如下 ...

  5. HDU 4596 Yet another end of the world (数学,扩展欧几里德)

    题意:给出n组x,y,z.判断是否存在一个id使得id%x1∈(y1,z1),id%x2∈(y2,z2). 析: 设 id/x1=a , id/x2=b ,则 id-a*x1=u;   (1) id- ...

  6. C# 扩展方法奇思妙用高级篇六:WinForm 控件选择器

    在Web开发中,jQuery提供了功能异常强大的$选择器来帮助我们获取页面上的对象.但在WinForm中,.Net似乎没有这样一个使用起来比较方便的选择器.好在我们有扩展方法,可以很方便的打造一个. ...

  7. How Tomcat Works(十四)补充

    在How Tomcat Works(十四)中,本人并没有对javax.servlet.Filter及javax.servlet.FilterChain做详细的描述,本文在这里做一下补充 FilterC ...

  8. 创建类模式(四):原型(Prototype)

    定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 原型模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建 ...

  9. Animation Spinner【项目】

    https://github.com/vjpr/healthkick/blob/master/src/win/healthkick/ucSpinnerCogs.xaml 网上的例子,放在UserCon ...

  10. oracle:自定义多行合并聚合函数

    原始表 COUNTRY CITY            -------------------- -------------- 中国 台北              中国 香港             ...