Linux计划任务工具cron用法详解

linux下大名鼎鼎的计划任务工具crontab的使用介绍baidu、google上多得让人眼花缭乱,本着“天下文章一大抄”的觉悟,加上本人日常工作中总结的使用经验,索性推出这篇笔记式文章,以供遗忘时翻阅之用。

cron是linux系统下一个自动执行指定任务的程序,即包含“时间”、“路径”、“自动执行脚本”等要素,例如我想通过自动执行脚本“newcopy.sh”在凌晨4点整将/usr/local/下的“new”目录复制到/home下的“superman”目录。
       cron程序在安装系统后一般会自动随系统启动,无需每次人手启动,若无意中将其自启动取消了,可以通过ntsysv或chkconfig将其添加到系统自启动列表中,如下:

#ntsysv
在自启动列表中选中crond即可

一、cron服务介绍

cron把命令行保存在/etc/crontab文件里,每个系统用户如果设置了自己的cron,那都会在/var/spool/cron下面有对应用户名的crontab。无论编写/var/spool/cron目录内的文件还是/etc/crontab文件,都能让cron准确无误地执行安排的任务,区别是/var/spool/cron下各系统用户的crontab文件是对应用户级别的的任务配置,而/var/crontab文件则是对应系统级别的任务配置。cron服务器每分钟读取一次/var/crontab/cron目录内的所有文件和/etc/crontab文件。

二、使用cron服务执行计划任务

#service crond start/restart/stop
启动/重启/关闭cron服务

#crontab -l
浏览当前用户的crontab,即浏览已存在的计划任务列表

#crontab -e
编辑当前用户crontab,如之前从未编辑过crontab文件,那么crontab是一个空白文件,我们可以完全手工编写我们所需要的计划任务列表,下面详细介绍计划任务列表的写法。

以下是几个例子:

1)9 9 * * * /usr/local/bin/cvsb
2)3 3 * * 0 /usr/local/bin/qbbak
3)* */6 * * * /usr/local/bin/esbbak
4)20,30 * * * /usr/local/bin/esbak
5)* 23 * * 2-5 /usr/local/bin/esbbak

六个字段对应的含义如下:
  9         9        *        *        *
分钟     小时   日期   月份    星期

1)表示每天早上9点9分执行目录/usr/local/bin/中的cvsb文件
2)表示每周日凌晨3时3分执行目录/usr/local/bin中的qbbak文件
3)表示每6小时执行一次,执行时间从第一次执行起计算,当然也可以自定义执行时间,比如0 */6 * * *那程序就会在整点执行
4)表示在每小时20分和30分时执行
5)表示在星期二到星期五每天的23点执行

上面简单介绍了cron的一些基本用法,这个东东的时间组合可不是一般的强~可以复杂到你无法想象,我们只要掌握少许基本就可以满足日常需求了。

三、cron进阶使用

1.避免cron产生垃圾文件

细心的朋友可能会发现系统/var/spool/clientmqueue/目录下往往存有大量文件,原因是系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail(系统自带的邮件服务器)没有启动所以就产生了这些文件。

这时可以使用输出重定向,即在计划任务后加上> /dev/null 2>&1

例:
9 9 * * * /usr/local/bin/cvsb > /dev/null 2>&1

2>&1:把错误重定向到输出要送到的地方。
把命令的执行结果重定向到/dev/null,即把产生的错误抛弃。

2.一种经常碰到的情况,需要执行的文件没问题,但通过cron就是死活不能正确执行,这时我们可以通过输出重定向将cron的执行过程输出到一个文件,通过分析执行过程来寻找错误的原因

例:
9 9 * * * /usr/local/bin/cvsb > /var/log/crontab_log 2>&1

上例将cron的执行过程输出到一个文本文件crontab_log,这个文件可以随便手动建一个,放在哪都行,重定向目录写对就Ok。

linux下定时任务的工具crontab的用法的更多相关文章

  1. Linux下串口通信工具minicom的用法

    一.查看串口设备 例如,将USB转串口线插入交换机Console口后,执行命令:$ll /dev/ttyUSB* 二.连接串口设备 $sudo minicom -D /dev/ttyUSB0 三.设置 ...

  2. Linux下使用SSH、Crontab、Rsync三工具实现数据自动备份

    Linux下使用SSH.Crontab.Rsync三工具实现数据自动备份 作为网管人员大概都无一例外的经历过系统备份,尤其是重要系统的备份.重要数据库系统的备份工作.由于备份是个频繁而琐碎的工作,如何 ...

  3. Linux下安装项目管理工具Redmine

    http://www.redmine.org.cn/download Linux下安装项目管理工具Redmine1.Ruby安装Ruby on Rails网站推荐使用1.8.7版. 点击(此处)折叠或 ...

  4. 【转】Linux下XenServer管理工具安装

    转载文章 - Linux下XenServer管理工具安装 Xen-Server 6.5 虚拟机安装Linux系统 vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化) ...

  5. linux磁盘清理方法 Linux 下垃圾清理工具 BleachBit

    由于当初安装系统设计不合理,有些分区的过小,以及网络通讯故障等造成日志文件速度增长等其他原因都可以表现为磁盘空间满,造成无法读写磁盘,应用程序无法执行等.下面就给你支几招(以/home空间满为例): ...

  6. linux下C++开发工具

    就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样.Emacs, vi, eclipse, anjuta,kd ...

  7. Linux下安装yum工具

    Linux下安装yum工具 http://blog.csdn.net/caoshichaocaoshichao/article/details/13171919

  8. Linux下批量管理工具pssh安装和使用

    Linux下批量管理工具pssh安装和使用 pssh工具包 安装:yum -y install pssh pssh:在多个主机上并行地运行命令 pscp:把文件并行地复制到多个主机上 prsync:通 ...

  9. Linux下性能分析工具汇总

    来自:http://os.51cto.com/art/201104/253114.htm 本文讲述的是:CPU性能分析工具.Memory性能分析工具.I/O性能分析工具.Network性能分析工具. ...

随机推荐

  1. Activity Fragment转场动画

    Activity转场动画 先介绍个动画的好例子:https://github.com/lgvalle/Material-Animations Activity的转场动画是通过overridePendi ...

  2. java的++和--操作符

    只要是会java的都知道++和—操作符的用法,如 int i = 1; int j = i++; int k = ++i; 结果i为3,j为1,k为3. 那如下代码: int j = 0; for ( ...

  3. ARIA(Accessible Rich Internet Application)

    ARIA 为Web app提供满足用户不同需求的解决方案.建设起用户和软件之间的桥梁. 新的HTML5标准中增加 aria-* 的标签属性,全称Accessible Rich Internet App ...

  4. 浅谈HTTPS以及Fiddler抓取HTTPS协议(摘抄)

    一.浅谈HTTPS 我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的.目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度.谷歌等. ...

  5. on where having总结

    1. ON 和WHERE 所有的查询都回产生一个中间临时报表,查询结果就是从返回临时报表中得到.ON和WHERE后面所跟限制条件的区别,主要与限制条件起作用的时机有关, ON根据限制条件对数据库记录进 ...

  6. Filter 设计模式编码实践

    原文地址: haifeiWu和他朋友们的博客 博客地址:www.hchstudio.cn 欢迎转载,转载请注明作者及出处,谢谢! 最近项目中遇到各种输出数据监控,数据校验等逻辑,一个个实现很是麻烦.项 ...

  7. Javascript:日期排班功能实现

     背景: 近期,公司的产品经常会遇到日期排班类似的功能: 需求的排班日期长短不一:有些是两周,有些是四周:要求选中的时候有一个active的状态区分,另外要提供钩子获取选中日期的形如:[2018-04 ...

  8. 【题解】 [NOI1999]生日蛋糕

    题面 传送门 Solution 搜索每一层的半径和高度,然后加入一些剪枝就好了. #include<stdio.h> #include<stdlib.h> #include&l ...

  9. while 小项目练习

    # (1) 用双层while 写十行十列小星星 j = 0 while j < 10: #打印一行十个小星星 i = 0 while i <10: print("*", ...

  10. jquery中animate({left:'-='+width})中的 '-='+是什么意思?

    left:'-='+width的意思是:left属性的最终值,是left现有值减去width这个值 例如:left:'200px' 意思是left最终值变成200left:'+200px' 意思与上面 ...