`
wenson
  • 浏览: 1051966 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

linux自動執行程序工具cron

阅读更多

假如你有一些任务要定期执行,比如清理磁盘、删除过期文件、发送邮件和提醒,这个时候可以用cron来帮你。

首先是安装,大多数发行版都预装了,Gentoo下的cron有许多种实现,可以用emerge --search cron来查看,这里用vixie-cron,因为功能比较完整,命令语法也比较通用。

# emerge vixie-cron

之后要启动cron服务:

# /etc/init.d/vixie-cron start

别忘了把cron加入到启动脚本中:

# rc-update add vixie-cron default

完成安装。

系统cron设定:/etc/crontab

通过 /etc/crontab 文件,可以设定系统定期执行的任务,当然,要想编辑这个文件,得有root权限。

让我们打开 /etc/crontab,看看cron的语法:

  1. # for vixie cron
  2. #
  3. # $Header: /var/cvsroot/gentoo-x86/sys-process/vixie-cron/files/crontab-3.0.1-r4,v 1.1 2005/03/04 23:59:48 ciaranm Exp $
  4. #
  5. #
  6. # Global variables
  7. SHELL=/bin/bash
  8. PATH=/sbin:/bin:/usr/sbin:/usr/bin
  9. MAILTO=root
  10. HOME=/
  11. # check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly
  12. 0 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly
  13. 1 3 * * * root rm -f /var/spool/cron/lastrun/cron.daily
  14. 15 4 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly
  15. 30 5 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly
  16. */10 * * * * root test -x /usr/sbin/run-crons && /usr/sbin/run-crons

以上是一个默认的/etc/crontab文件,7~11行设定了执行任务时特定环境变量的值,MAILTO=root 指出出错信息发给root。

真正描述执行的任务在14~18行,每行代表了一个定期执行的任务,从前到后,分为3部分:

第一部分,一堆奇怪的数字和星号,这部分描述任务的执行周期和时间,后面我们将详细解释。

第二部分,上面的文件全部是"root",描述了执行任务时的用户。

第三部分,为需要执行的完整命令。

第一部分分为5个小部分,没部分可以是数字或者星号,分别代表了分钟、小时、日期、月份、周,让我们来看一个例子:

0 7 * * * root mpg123 ~/wakeup.mp3
分 时 日 月 周

星号,即代表不限制,上面的例子就是:每天的7点0分,都将执行mpg123 ~/wakeup.mp3,放首歌,把自己从睡梦中叫醒~

以下是各部分的取之范围:

分钟 0~59
小时 0~23
日期 1~31
月份 1~12
0~6

其中周的范围0~6,0代表星期天,1~6代表周一~周六。

让我们来看更多的例子:

0 4 * * 0 root emerge --sync && emerge -uD world #每周日凌晨4点,更新系统
0 2 1 * * root rm -f /tmp/*                                        #每月1号凌晨2点,清理/tmp下的文件
0 8 6 5 * root mail robin < /home/galeki/happy.txt    #每年56日给robin发信祝他生日快乐

假如,我想每隔2分钟就要执行某个命令,或者我想在每天的6点、12点、18点执行命令,诸如此类的周期,可以通过 “ / ” 和 “ , ” 来设置:

*/2 * * * * root ............... #每两分钟就执行........
0 6,12,18 * * * root ............... #每天6点、12点、18点执行........

 

上面我们提到的 /etc/crontab 文件,只能指定系统定期执行的命令,如果用户想设定自己定期需要执行的命令的话,就要用到crontab命令,编辑自己的crontab文件。

首先,用户必须隶属于cron组才可以用crontab命令,可以用下面的命令把用户加入到cron组中:

# gpasswd -a galeki cron

crontab命令主要有3个参数:

-e :编辑用户的crontab。

-l :列出用户的crontab的内容。

-r :删除用户的crontab的内容。

执行crontab -e,将自动打开编辑器,你可以编辑自己的crontab文件,语法和 /etc/crontab 文件一样,不同的只是,不必再指出执行的用户,编辑后保存即可。

crontab -l用来查看自己的crontab文件内能,crontab -r删除自己的crontab。

 

 

 

本文轉自:http://hi.baidu.com/3baozi/blog/item/c2f42799705fc80d6f068c51.html

分享到:
评论

相关推荐

    linux下 MYSQL 自动备份工具

    综上所述,"linux下 MYSQL 自动备份工具"是一个集成了`mysqldump`、`tar`和`cron`等工具的智能解决方案,它简化了数据库备份流程,确保了数据的安全和可靠性。通过编写和配置适当的shell脚本,如`backup.sh`,可以...

    Linux定时执行程序Cronb.pdf

    【描述】: Linux系统中的Cron服务是一个强大的工具,允许用户设置定时任务,自动执行一系列命令或脚本,无需人工干预。Cron是Unix/Linux系统中的一个守护进程,用于执行预定的任务,通常用于数据备份、系统维护和...

    Cron表达式生成工具

    生成的Cron表达式可以被复制并粘贴到各种支持Cron的任务调度器中,如Unix/Linux的crontab,或者其他支持Cron的服务器管理工具中,以实现预定的任务自动化执行。 总的来说,"Cron表达式生成工具"是一个简化Cron...

    cron表达式自动生成页面版

    cron表达式是Unix/Linux系统中的一个调度工具,用于在特定时间执行预定的任务。在Java世界中,Spring框架也广泛使用cron表达式来实现定时任务。这个"cron表达式自动生成页面版"是一个实用的工具,它允许用户在网页...

    linux下用cron定时执行任务的方法.docx

    Linux 中的 Cron 任务调度器是一个强大的工具,允许用户在指定的时间或间隔执行程序。Cron 任务调度器使用 crontab 文件来存储任务的配置信息。下面是关于 Cron 任务调度器的详细知识点: 一、Crontab 文件的格式 ...

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

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

    Linux定时执行程序Crontab.pdf

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

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

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

    Linux 后台执行程序如何操作?.docx

    在Linux系统中,后台执行程序是一项常见的操作,尤其对于服务器管理和自动化任务来说至关重要。与Windows系统不同,Linux采用不同的机制来实现程序的后台运行。在Linux下,我们不会像Windows那样依赖可执行文件(如...

    linux自动删除文件

    "Linux自动删除文件"这个主题涉及到使用Shell脚本来定期或按照特定条件清理无用的文件,以保持系统的整洁和高效运行。下面我们将深入探讨如何创建和使用Shell脚本来实现这一功能。 首先,让我们了解什么是Shell脚本...

    CRON定时任务生成工具

    这样,Quartz会根据设定自动执行Job,无需人工干预。 总结来说,CRON定时任务生成工具是开发工具箱中的一个重要组件,它们简化了定时任务的创建和管理,提高了开发效率,尤其是在需要频繁进行时间调度的项目中。...

    Linux操作系统定时任务系统 Cron 入门.pdf

    crond 命令是 Linux 用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 六、Linux 任务调度 ...

    linux环境定时执行程序或者脚本的方法

    在Linux环境中,定时执行程序或脚本是一项常用的任务,这通常通过Linux的内置服务`cron`来实现。`cron`是一个任务调度器,它允许用户设置定时任务,这些任务可以按分钟、小时、日期、月份和星期几等时间间隔自动执行...

    linux定时java程序,短信、邮件在linux自动发送

    总结起来,实现"linux定时java程序,短信、邮件在linux自动发送"需要以下几个关键点:利用JavaMail API发送邮件,使用短信服务提供商的API发送短信,设置Linux cron job进行定时任务调度,以及在Java中使用多线程...

    cron测试工具

    cron测试工具是IT行业中用于调试和验证cron表达式的实用程序,尤其在自动化任务调度中扮演着重要角色。cron是Unix/Linux系统中的一个时间计划任务工具,而在Java开发环境中,我们通常使用类似的定时任务框架,例如...

    应用再html、jsp上的自动生成Cron表达式

    在IT领域,尤其是在Web开发中,`Cron表达式`是一种强大的工具,用于安排周期性的任务执行。在HTML和JSP(JavaServer Pages)这样的前端和后端技术中,使用Cron表达式可以帮助开发者实现定时任务,比如定时发送邮件、...

    Linux操作系统定时任务系统Cron入门.pdf

    任务调度的 crond 常驻命令 crond 是 Linux 用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作...

    UNIX和Linux自动化管理(第二版)2009.

    ### UNIX和Linux自动化管理(第二版)2009知识点概览 #### 一、书籍基本信息及版权说明 - **书名**:《Automating Linux and Unix System Administration》(中文可译为《UNIX和Linux系统自动化管理》)第二版。 - *...

    vixie-cron-4.1.rar_centos-s002_crontab source code_vixie-cron_vi

    在Linux系统中,crontab是用于设置周期性被执行的任务的工具,它源自著名的Unix系统工具cron。Vixie-cron是cron的一个实现版本,由Paul Vixie开发,广泛应用于多种Linux发行版,包括CentOS。本文将深入探讨vixie-...

Global site tag (gtag.js) - Google Analytics