`
blaiu
  • 浏览: 131038 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cron crontab linux定时执行工具

阅读更多
cron 是linux下定时执行工具, 可以在无需人工干预的情况下运行作业。由于cron是linux的内置服务,不能自动起来,可以用一下方法启动,关闭服务:
/sbin/service crond start   //启动服务
/sbin/service crond stop    //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload  //重新载入配置


也可以将这个服务在系统启动的时候自动启动
在/etc/rc.d/rc.local 这个脚本的末尾加上:/sbin/service crond start


cron 服务提供了几种接口功大家使用:

1.直接用crontab命令编辑
    cron服务提供crontab命令来设定cron服务,以下是这个命令的一些参数与说明
   
    crontab -u  //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
    crontab -l  //列出某个用户cron服务的详细内容
    crontab -r  //删除某个用户的cron服务
    crontab -e  //编辑某个用户的cron服务
   
    root查看自己的cron设置: crontab -u root -l
    root删除fred的cron设置: crontab -u fred -r
    在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
    进入vi编辑模式,编辑内容一定要符合(*/1****ls >> /tmp/ls.txt)
   
    这个格式的前一部分是对时间的设定, 后一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后再这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径时间的设定有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
    分钟 (0-59)
    小時 (0-23)
    日期 (1-31)
    月份 (1-12)
    星期 (0-6)//0代表星期天
   
    除了数字还有几个特殊的符号就是"*"、"/"和"-"、",",
    *代表所有的取值范围内的数字,
    "/"代表每的意思,"
    */5"表示每5个单位,
    "-"代表从某个数字到某个数字,
    ","分开几个离散的数字。
   
   
   
    以下举几个例子说明问题:
   
    每天早上6点
    0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
   
    每两个小时
    0 */2 * * * echo "Have a break now." >> /tmp/test.txt
   
    晚上11点到早上8点之间每两个小时,早上八点
    0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp /test.txt

    每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
    0 11 4 * 1-3 command line
   
    1月1日早上4点
    0 4 1 1 * command line
   
    每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。
   
   
   
   
2、编辑/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"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
    --------------------------------------

    基本格式 :
    *  *  *  *  *  command
    分 时 日 月 周 命令

    第1列表示分钟1~59 每分钟用*或者 */1表示
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    第6列要运行的命令

    crontab文件的一些例子:

    30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每晚的21:30重启 lighttpd 。

    45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每月1、 10、22日的4 : 45重启lighttpd 。

    10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每周六、周日的1 : 10重启lighttpd 。

    0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。

    0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每星期六的11 : 00 pm重启lighttpd 。

    * */1 * * * /usr/local/etc/rc.d/lighttpd restart
    每一小时重启lighttpd

    * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
    晚上11点到早上7点之间,每隔一小时重启lighttpd

    0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
    每月的4号与每周一到周三的11点重启lighttpd

    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
    一月一号的4点重启lighttpd


原文出处:http://blog.csdn.net/snowqoo228/archive/2008/09/14/2817707.aspx
分享到:
评论

相关推荐

    linux 计划任务cron--怎么定时执行的指令

    Cron是Linux系统中用于调度周期性任务的守护进程(Daemon),允许用户在固定时间或周期性地执行命令或脚本。通过Cron,用户可以设定复杂的定时任务,如定期备份数据、清理日志、发送邮件提醒等。 #### 二、Cron的...

    crontab执行时间与系统时间不一致问题解决

    cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。  service crond start //启动服务  service crond stop //关闭服务  service crond restart //重启服务  service crond reload //...

    Linux cron定时执行jar

    在Linux系统中,`cron`是一个强大的任务调度命令,它允许用户设置周期性的计划任务,自动在特定时间执行。在给定的场景中,我们关注的...遵循以上步骤,你就能成功地在Linux系统中用`cron`定时执行Java的`.jar`程序了。

    Linux定时执行程序Crontab.pdf

    Linux定时执行程序Crontab是Linux系统中一个强大的任务调度工具,用于自动化执行特定的脚本或命令。在Linux环境中,如果你需要定期执行诸如数据备份、数据库更新等任务,Crontab是不可或缺的。以下是对Crontab及其...

    Linux定时执行脚本学习笔记

    本文将围绕“Linux定时执行脚本学习笔记”这一主题,结合提供的文件,深入探讨如何在Linux环境下设置自动执行脚本,以及涉及的相关知识。 首先,我们来看“Ubuntu定时执行脚本.docx”和“linux下定时执行脚本.docx...

    linux定时执行crontab.pdf

    Linux系统的`crontab`是用于定时执行任务的工具,它是Unix/Linux环境中的一种任务调度命令。通过`crontab`,用户可以设置周期性被执行的任务,比如定期备份、清理日志、执行脚本等。本文将详细介绍`crontab`的使用...

    cron和crontab概念详解

    cron是Linux系统中的一个守护进程,用于在特定的时间间隔内自动执行预定的任务或者命令。它可以帮助用户在无需人工干预的情况下自动化一系列工作流程,比如定时备份数据库、定期清理日志文件等。 cron的工作原理...

    cron安装包

    cron安装包包含的是Linux系统中的定时任务管理工具,主要由vixie-cron和crontabs两个组件构成。这两个组件在Linux环境中起着至关重要的作用,使得系统能够自动化执行一系列预设的任务,如备份、日志清理、系统监控等...

    linux定时执行crontab.docx

    总的来说,`crontab`是Linux系统中不可或缺的工具,它使得定期执行自动化任务变得简单而有效,广泛应用于系统维护、数据备份、日志清理等场景。正确理解和使用`crontab`对于提高运维效率至关重要。

    linux C7 crontab离线安装包

    在Linux系统中,Crontab(也称为cron table)是一个非常重要的工具,用于安排周期性的任务,例如定期备份、日志清理、系统维护等。在Linux CentOS 7(C7)环境中,通常使用RPM(Red Hat Package Manager)包管理系统...

    crontab定时任务不执行的一些原因总结

    最近在工作中遇到了一些问题,crontab定时任务居然不执行,后来我在网上找的时候发现网上主要说了这5个原因: 1 crond服务未启动 crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以...

    linux下定时执行脚本

    在Linux系统中,定时执行脚本是一项非常...通过以上步骤,你可以在Linux下设置定时执行脚本,利用`cron`实现自动化任务。记住,理解`cron`的工作原理以及正确编写和管理`crontab`文件对于提升系统管理效率至关重要。

    Linux定时执行程序--Crontab借鉴.pdf

    Linux定时执行程序,尤其是通过Crontab实现自动化任务,是一种常用的方法来确保系统按照特定的时间间隔执行特定的任务。Crontab是Unix/Linux操作系统中的一个守护进程,它允许用户定义一系列的任务,这些任务会在...

    linux定时执行程序--crontab().pdf

    在Linux系统中,`crontab`是一个强大的定时任务管理工具,用于安排周期性地执行任务。它允许用户根据特定的时间间隔定义任务,这些任务会在后台自动运行,无需人工干预。在给定的描述中,我们看到如何使用`crontab`...

    Linux Crontab 定时任务 命令详解

    Linux Crontab 是一个强大的定时任务命令,用于在指定的时间间隔执行特定的命令或程序。Crontab 命令的功能是在一定的时间间隔调度一些命令的执行,通过编写 Crontab 文件来实现。 1. Crontab 介绍 Crontab 命令的...

    Ubuntu crontab 定时执行php脚本文件

    Cron是Unix和Linux操作系统中的一个重要工具,它允许用户设定周期性的任务,例如定时运行脚本或者应用程序。对于大多数PHP开发者而言,尽管能够熟练地开发Web应用并调试PHP代码,但在Linux环境下利用Cron来执行PHP...

    linux定时执行,crontab命令使用介绍借鉴.pdf

    Linux 定时执行 Crontab 命令使用介绍借鉴 ...Crontab 命令是一个非常有用的工具,用于在 Linux 系统中实现定时执行任务。通过了解 Crontab 命令的基本用法和格式,我们可以更好地使用 Crontab 命令来实现我们的需求。

Global site tag (gtag.js) - Google Analytics