crontab [-u user] file

crontab [-u user] [-l | -r | -e] [-i] [-s]

  crontab命令被用来提交和管理用户需要周期性执行的任务,与windows下的计划任务类似。

  当安装完操作系统后,默认安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则会自动执行该任务。

  在固定的间隔时间执行指定的系统指令或shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据库备份等工作。

  注意:crontab命令的服务名叫crond。

(1).常用选项

  1. -u user 指定要设定计时器的用户
  2. -l 列出计时器的设置,查看定时运行的程序(没有指定用户时,默认显示当前用户)
  3. -r 删除用户的计时器设置
  4. -e 编辑用户的计时器设置
  5. -i 在删除用户的计时器设置之前提示

  注意:crontab的文件内容格式为“M H D m d command”,其中M代表分钟(0~59),H代表小时(0~23),D代表日期(1~31),m代表月份(1~12),d星期几(0~6,0代表星期天)。在以上的各个时间字段中,还可以使用一些特殊字符。'*'代表所有可能的值;','可以用来隔开并指定列表范围,例如'1,2,3,4';'-'可以表示两个整数之间的所有值,例如'1-4'就是'1,2,3,4'; '/'表示指定时间的间隔频率,例如分钟字段'*/10',意思就是每隔10分钟执行一次command表示要执行的程序,它被送入shell执行,这个command只有USER、HOME、SHELL三个环境变量。

(2).实例

  以下内容是crontab -e进入到编辑计时器中才可使用

  1. * * * * * command  //每分钟执行一次
  2. */5 * * * * command  //每五分钟执行一次
  3. 3,5 * * * * command  //1小时中的第3分钟和第5分钟执行
  4. 0 17 * * * command  //每天中的17:00执行一次
  5. 3 2-12/2 * * * command  //每天的2:03,4:03,6:03,8:03,10:03,12:03各执行一次
  6. 0 * * * * /etc/init.d/smb restart  //每小时执行一次/etc/init.d/smb重启
  7. 0 0 * * 0 root run-parts /etc/cron.hourly  //每周日00:00使用root用户身份执行/etc/cron.hourly当前脚本(或目录下所有脚本)
  8. 其他的请自己类推吧

  下面来尝试创建一个crontab文件,注意/var/spool/cron是用户任务,/etc/crontab是系统任务

  1. [ root@CentOS6 桌面]# cd /var/spool/cron
  2. [ root@CentOS6 cron]# ll  //目录为空表明当前系统没有任何Linux计划任务需要执行
  3. 总用量 0
  4. [ root@CentOS6 cron]# crontab l  //自带的crontab -l一样没有
  5. No crontab for root
  6. [ root@CentOS6 cron]# crontab -e  //如果目录已经存在指定的文件(文件名为当前用户名),crontab -e则会编辑文件,否则将会以当前用户名创建文件。

  输入一些文件内容

  1. */2 * * * * ls -l /root/桌面 > root.txt  //这个文件会出现在/root文件夹下,为什么暂时不清楚

(3).crond服务

  以下是CentOS6的操作方式:

  1. service crond status  //状态
  2. service crond start  //启动
  3. service crond stop  //停止
  4. service crond restart  //重新启动
  5. service crond reload  //重新加载配置

(4).扩展:如何排查所有用户的周期性计划任务(crontab)

  周期性计划任务分为用户级和系统级。所有用户级周期性计划任务都会在/var/spool/cron/目录下产生相应的文件,文件名为创建计划任务的用户名。系统级周期性计划任务调度的是配置文件,直接在/etc/crontab文件中编辑,添加。

  /etc/crontab文件内容如下:

  1. [root@xuexi cron]# cat /etc/crontab
  2. SHELL=/bin/bash  //指定操作系统使用哪个shell
  3. PATH=/sbin:/bin:/usr/sbin:/usr/bin  //系统执行命令的所有路径
  4. MAILTO=root  //将执行任务的信息通过邮件发送给指定用户
  5.  
  6. # For details see man 4 crontabs
  7.  
  8. # Example of job definition:
  9. # .---------------- minute (0 - 59)
  10. # | .------------- hour (0 - 23)
  11. # | | .---------- day of month (1 - 31)
  12. # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
  13. # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
  14. # | | | | |
  15. # * * * * * user-name command to be executed
  16. //以下可以添加计划任务

  使用crontab命令的注意事项:

    环境变量问题,例如:路径需要使用绝对路径等。

    不想产生邮件日志时,可以使用&>/dev/null重定向

    用户级和系统级需要分开

    %在crontab中被认为newline,需要使用\转义

  系统级周期性计划任务还可以写在如下地方:

    /etc/cron.d/  系统自动定期需要执行的任务,但又不是按小时、天、星期、月来执行,那么就放在这个目录下。

    /etc/deny  控制用户是否能做计划任务

    /etc/monthly/  每月执行的脚本

    /etc/weekly/  每周执行的脚本

    /etc/daily/  每天执行的脚本

    /etc/hourly/  每小时执行的脚本

    /etc/contab  主配置文件,也可添加任务。

(5).扩展2:crontab命令不支持每秒执行。那么该如何实现每两秒执行一次脚本?

  这需要在脚本中创建一个死循环,使用命令sleep 2,每执行一次沉睡2秒,执行30次。然后周期性计划任务如下格式:* * * * * [脚本](每分钟执行一次)

Linux命令之crontab的更多相关文章

  1. Linux命令之Crontab定时任务,利用Crontab定时执行spark任务

    Linux命令之Crontab定时任务,利用Crontab定时执行spark任务 一.Linux命令之Crontab定时任务 1.1 常见Crontab任务 1.1.1 安装crontab 1.1.2 ...

  2. 工作中常用的Linux命令:crontab命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...

  3. 每天一个linux命令(56)--crontab命令

    上一节学习了 at  命令是针对仅运行一次的任务,循环运行的例行性计划任务,Linux 系统则是由 cron(crond)这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个 ...

  4. Linux 命令之 crontab

    crontab 简介 crontab 主要用于需要管理周期执行定时任务的场景 crontab 安装 (有些系统默认已经带了 crontab,无需安装的朋友可以直接跳过本节) 安装: yum insta ...

  5. linux命令之crontab详解

    crontab命令: crontab -l : 显示定时任务列表 crontab -e: 编辑定时任务 crontab -r : 删除所有定时任务 基本格式 :  * * * * * command  ...

  6. linux命令之crontab定时执行任务

    一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动c ...

  7. linux命令之crontab定时执行任务【转】

    本文转载自:https://www.cnblogs.com/coffy/p/5608095.html 一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护 ...

  8. linux命令:crontab命令(转)

    一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动cro ...

  9. linux 命令:crontab

    一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动c ...

随机推荐

  1. Spring源码解析-事件

    Spring事件的组件 主要是3个组件: 1.ApplicationEvent   事件 2.ApplicationListener 监听器,对事件进行监听 3.ApplicationEventMul ...

  2. Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) B

    B. Problems for Round time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  3. libusb 示例

    #include <usb.h> #include <stdio.h> #define VERSION "0.1.0" #define VENDOR_ID ...

  4. PRINT_TABLE 列以行形式显示

    在sqlplus,如果列比较多,往往会显示不够清晰,这时如果能把查询语句行转列就明了多了,在网上看到print_table存储过程:里面所设置的日期格式,可根据自己习惯修改 CREATE OR REP ...

  5. 程序员的那些问题---转载自veryCD

    展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告   走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过 ...

  6. sublime2创建一个html5的snippets文件

    背景:跟了一个网上课程,老师哗啦啦敲代码,屏幕上只敲了几个字,键盘一操作,瞬间一大溜代码,看得我心惊肉跳连忙暂停抄抄抄. 举个简单的例子,我需要创建一个html文件.但是我不想每次都敲固定的格式.那么 ...

  7. elementUi 组件--el-table

    [需求]在element中,将表格中的数据进行处理,然后渲染出来.例如,将数据保留小数点后两位显示. [知识点]formatter:用来格式化内容 [分析]在element 的table中,实现的过程 ...

  8. 知问前端——日历UI(三)

    datepicker日期选择选项 属性 默认值/类型 说明 minDate 无/对象.字符串或数值 日历中可以选择的最小日期 maxDate 无/对象.字符串或数值 日历中可以选择的最大日期 defa ...

  9. [转载]C#用正则表达式 获取网页源代码标签的属性或值

    最近调试程序需要用到获取网页指定标签的属性和值,找到了一个比较好的正则匹配方法,特此备份. [原]C#用正则表达式 获取网页源代码标签的属性或值 整理两个 在C#中,用正则表达式 获取网页源代码标签的 ...

  10. A way escape rbash

    hacker@beta:~$ ls -rbash: /usr/bin/python: restricted: cannot specify `/' in command names ryuu@beta ...