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

定时任务管理之Linux篇crontab使用

阅读更多

     在工程项目中,难免需要用到一些定时执行的任务。对于java这种常驻内存的语言,比较容易解决,java自身就提供了定时任务,而且还有优秀的第三方开源工具quartz。但是像php、python这样脚本语言,定时任务就需要借助于操作系统的定时任务管理。不过python也有一个优秀的第三方开源插件celery完成定时任务的执行。这里我们就看一下linux操作系统定时任务管理器crontab的使用。

一、认识crond服务

    1、crond是Linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而Linux任务调度的工作主要分为以下两类:

  ①系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存

  ②个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

 2、Crontab是UNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中:

  ①/etc/cron.deny 该文件中所列的用户不允许使用Crontab命令

  ②/etc/cron.allow 该文件中所列的用户允许使用Crontab命令

 3、/var/spool/cron/ 是所有用户的crontab文件

   4、启动、停止、查看crond服务:

    ①启动:service crond start

    ②停止:service crond stop

    ③查看:service crond status

二、认识crontab

1、crontab命令

    ①crontab -l :列出当前的crontab任务 
    ②crontab -d :删除当前的crontab任务 
    ③crontab -e (solaris5.8上面是 crontab -r) :编辑一个crontab任务,ctrl_D结束 
    ④crontab filename :以filename做为crontab的任务列表文件并载入

2、crontab配置

    时程表的格式如下 : f1 f2 f3 f4 f5 program

  • 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。 
  • 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余类推
  • 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
  • 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
  • 当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
  • 使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。

3、配置实例

    ①每天早上7点执行一次 /bin/ls : 

        0 7 * * * /bin/ls

    ②在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :

       0 6-12/3 * 12 * /usr/bin/backup

    ③周一到周五每天下午 5:00 寄一封信给alex@domain.name:
       0 17 * * 1-5 mail -s "hi"alex@domain.name< /tmp/maildata
    ④每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
       20 0-23/2 * * * echo "haha"

4、查看crontab的执行情况

    crontab默认情况下把执行日志写在/var/log下面,如:

ls /var/log/cron*
//输出结果为
/var/log/cron /var/log/cron.1 /var/log/cron.2 /var/log/cron.3 /var/log/cron.4

    其中/var/log/cron就是crontab的最新日志信息。通过查看cron日志,我们就可以了解在crontab中配置的任务是否正常执行。

    crontab的日志比较简单,我们也可以为crontab中的任务增加自己的日志,这样出错后,比较容易看到原因。例如:

#把错误输出和标准输出都输出到mylog.log中
0 6 * * * $HOME/for_crontab/createTomorrowTables >> $HOME/for_crontab/mylog.log 2>&1
#注意:不要写成
0 6 * * * $HOME/for_crontab/createTomorrowTables 2>&1 >> $HOME/for_crontab/mylog.log
#否则就输出到标准输出了

 

 

 

分享到:
评论

相关推荐

    springboot的定时任务配置和linux的crontab一样例子.zip

    springboot的定时任务配置和linux的crontab一样例子.zipspringboot的定时任务配置和linux的crontab一样例子.zipspringboot的定时任务配置和linux的crontab一样例子.zip

    Linux Crontab 定时任务 命令详解

    Linux Crontab 定时任务 命令详解 Linux Crontab 是一个强大的定时...Linux Crontab 是一个功能强大且灵活的定时任务命令,通过编写 Crontab 文件,可以实现自动化管理和维护服务器,从而提高服务器的安全性和可靠性。

    Linux定时脚本crontab中文乱码.docx

    Linux 定时脚本 crontab 中文乱码解决方案 Linux 系统中的定时脚本 crontab 是一个功能强大的工具,允许用户在指定的时间执行特定的命令或脚本。然而,在使用 crontab 执行 jar 文件时,如果输出结果包含中文字符...

    linux C7 crontab离线安装包

    在Linux系统中,Crontab...总结来说,Linux CentOS 7的Crontab离线安装包提供了在无网络环境下安装和管理定时任务的能力,通过RPM包管理方式,我们可以方便地在系统中部署和配置Crontab,实现自动化维护和管理工作。

    linux crontab 定时任务脚本

    NULL 博文链接:https://caoyaojun1988-163-com.iteye.com/blog/1698192

    linux定时任务命令之crontab

    ### Linux定时任务命令之crontab #### Crontab简介 Crontab是Linux系统中一个非常重要的工具,用于在固定时间周期性地执行特定任务。通过crontab,管理员和用户可以设置脚本或命令在指定的时间自动执行,极大地...

    Linux中使用crontab自动清除日志

    在 Linux 中使用 crontab 自动清除日志的方法是通过编写一个 shell 命令,然后在 cron 中编写定时任务。例如,以下是一个删除 30 天前的日志文件的 shell 命令: find /opt/soft/log/ -mtime +30 -name "*.log" -...

    易语言 Crontab 定时任务执行模块 v1.2 支持单位秒 也可做计时器源码

    Crontab 是一种在 Linux 系统中广泛使用的定时任务管理机制,用于按照预设的时间表执行命令或脚本。这个易语言 Crontab 定时任务执行模块 v1.2 则是将这种功能移植到了易语言环境中,让开发者能够方便地在易语言程序...

    Linux中定时计划任务crontab使用实例linux操作系统电脑资料.doc

    Linux 中的定时计划任务 crontab 使用实例 Linux 中的定时计划任务 crontab 是一个非常有用的功能,它允许用户在指定的时间执行特定的任务。crontab 是一个 daemon 程序,它会在后台运行,并根据用户的设置来执行...

    Liunx系统定时删除任务,定时清理日志,定时清理任务

    要使用`crontab`,首先需要打开终端并输入`crontab -e`命令,这会打开一个编辑器(通常是vi或nano),在这里你可以添加定时任务。`crontab`的格式由五列时间字段和一个命令字段组成,例如: ``` * * * * * command_...

    Linux运维-2系统管理-15系统管理-174定时任务之crontab使用.avi

    Linux运维-2系统管理-15系统管理-174定时任务之crontab使用.avi

    centos6.9定时任务crontab离线安装包

    在Linux系统中,`crontab` 是一个用于设置周期性被执行的任务的命令,它允许用户根据特定的时间间隔安排任务的执行。在CentOS 6.9这样的旧版本系统中,有时可能会遇到`yum`无法在线获取或更新`crontab`的情况。这...

    linux 定时任务 crontab 详细解释

    ### Linux定时任务Crontab详解 #### 一、Crontab简介 在Linux系统中,Cron服务是一种用于计划执行任务的工具。它允许用户设置周期性运行的任务,例如自动备份数据、定时发送邮件等。Cron服务的核心是`crontab`命令...

    Linux的定时任务crontab命令怎么用.pdf

    Linux中使用crontab命令实现定时任务 在Linux系统中,crontab命令是一个非常有用的工具,它可以帮助用户实现定时任务的执行。通过crontab命令,用户可以在指定的时间执行特定的命令或程序,这使得系统管理员可以更...

    linux定时任务设置

    本文将详细介绍如何在 Linux 中使用 crontab 命令来设置定时任务,并对其格式、参数和使用方法进行详细解释。 crontab 命令 crontab 命令是 Linux 中用来设置定时任务的命令。其基本语法为:`crontab [选项] [命令...

    linux采用crontab定时跑任务.docx

    【Linux的Crontab定时任务】 Crontab是Linux系统中的一个强大工具,用于设置周期性的任务调度。它依赖于名为`crond`的守护进程,该进程在系统启动时自动启动,每分钟检查是否有待执行的任务。Crontab的任务调度分为...

    thinkphp 5.1 定时任务,Crontab 计划任务-think-cron.zip

    4. 安装Crontab:在服务器上,使用`crontab -e`命令编辑Cron配置文件,然后添加一条新的任务规则,指定何时运行你的ThinkPHP定时任务。格式如下: ``` * * * * * ...

    Linux下定时任务,命令启停jar包服务

    Linux 作为一款流行的操作系统,提供了许多强大的功能,其中之一就是定时任务的管理。定时任务允许用户在指定的时间执行特定的命令或程序,从而实现自动化操作。在 Linux 中,crontab 是一个常用的定时任务管理工具...

    Ubuntu-使用crontab定时任务

    ### Ubuntu 使用 Crontab 定时任务 Crontab 是 Linux 系统中一个非常重要的工具,用于在固定时间执行指定的任务。对于 Ubuntu 用户来说,掌握 crontab 的使用方法可以大大提高系统的自动化管理水平。 #### 一、...

    linux采用crontab定时跑任务.pdf

    系统任务调度集中在/etc/crontab文件中,这个文件包含了环境变量的配置以及定时任务的定义。例如,SHELL变量指定使用哪个shell(这里是bash),PATH变量指定了执行命令的搜索路径,MAILTO变量则指定了任务执行信息的...

Global site tag (gtag.js) - Google Analytics