一.Crontab 介绍

crontab命令的功能是在一定的时间间隔调度一些命令的执行。

1.1 /etc/crontab 文件

在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。

如:

[root@dave ~]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

1.2 /etc/cron.deny 和/etc/cron.allow 文件

/etc/cron.deny 表示不能使用crontab 命令的用户

/etc/cron.allow 表示能使用crontab的用户。

如果两个文件同时存在,那么/etc/cron.allow 优先。

如果两个文件都不存在,那么只有超级用户可以安排作业。

每个用户都会生成一个自己的crontab 文件。这些文件在/var/spool/cron目录下:

如:

[root@dave ~]# cd /var/spool/cron

[root@dave cron]# ls

oracleroot

我们直接查看这个文件,里面的内容和对应用户显示的crontab -l 一致。

[root@dave cron]# cat oracle

00 6 * * * /u02/scripts/del_st_archive.sh >/u02/scripts/del_st_arch.log 2>&1

[root@dave cron]# cat root

0 12 * * * /root/bin/sync-clock.sh

[root@dave cron]#

二.Crontab 使用说明

2.1Crontab语法

usage:crontab [-u user] file

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

(default operation is replace, per 1003.2)

-e(edit user's crontab)

-l(list user's crontab)

-r(delete user's crontab)

-i(prompt before deleting user's crontab)

-s(selinux context)

其中,file是命令文件的名字。如果在命令行中指定了这个文件,那么执行crontab命令,则将这个文件拷贝到crontabs目录下;如果在命令行中没有制定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab目录下。

帮助:

[root@dave ~]# man crontab

CRONTAB(1)CRONTAB(1)

NAME

crontab - maintain crontab files for individual users (ISC Cron V4.1)

SYNOPSIS

crontab [-u user] file

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

DESCRIPTION

Crontabis the program used to install, deinstall or list the tables used to drive the cron(8) daemon in ISC Cron.Each user can have their own crontab,andthough thesearefiles in /var/spool/ , they are not intended to be edited directly. For SELinux in mls mode can be even more crontabs-foreachrange.Formoresee selinux(8).

Ifthecron.allowfileexists,thenyou must be listed therein in order to be allowed to use this command.Ifthecron.allowfiledoesnotexistbutthe cron.denyfiledoesexist,then you must not be listed in the cron.deny file in order to use this command.If neither of these files exists, only thesuperuser will be allowed to use this command.

OPTIONS

-uItspecifiesthe name of the user whose crontab is to be tweaked.If thisoption is not given, crontab examines "your" crontab, i.e., thecrontabof thepersonexecuting the command.Note that su(8) can confuse crontab and that if you are running inside of su(8) you should always use the -uoption forsafety¡¯s sake.The first form of this command is used to install a new crontab from some named file or standard input if the pseudo-filename "-" is given.

-lThe current crontab will be displayed on standard output.

-rThe current crontab will be be removed.

-eThisoptionis used to edit the current crontab using the editor specified by the VISUAL or EDITOR environment variables.After you exit from the edi-tor, the modified crontab will be installed automatically.

-iThisoptionmodifies the -r option to prompt the user for a ¡¯y/Y¡¯ response before actually removing the crontab.

-sIt will append the current SELinux security context string asanMLS_LEVEL settingtothecrontab file before editing / replacement occurs - see the documentation of MLS_LEVEL in crontab(5).

SEE ALSO

crontab(5), cron(8)

FILES

/etc/cron.allow

/etc/cron.deny

STANDARDS

The crontab command conforms to IEEE Std1003.2-1992 (¡®¡®POSIX¡¯¡¯).This newcommand syntaxdiffersfromprevious versions of Vixie Cron, as well as from the classic

SVR3 syntax.

DIAGNOSTICS

A fairly informative usage message appears if you run it with a bad command line.

AUTHOR

Paul Vixie <vixie@isc.org>

4th Berkeley Distribution16 Januar 2007CRONTAB(1)

2.2Crontab 格式说明

我们可以用crontab -e 添加要执行的命令。命令执行的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。

添加的命令必须以如下格式:

* * * * * /command path

前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,即命令字段,其中包括了crontab调度执行的命令。各个字段之间用spaces和tabs分割。

前5个字段分别表示:

分钟:0-59

小时:1-23

日期:1-31

月份:1-12

星期:0-6(0表示周日)

还可以用一些特殊符号:

*:表示任何时刻

,: 表示分割

  -:表示一个段,如第二端里: 1-5,就表示1到5点

/n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

一些示例:

00 8,12,16 * * * /data/app/scripts/monitor/df.sh

30 2 * * * /data/app/scripts/hotbackup/hot_database_backup.sh

10 8,12,16 * * * /data/app/scripts/monitor/check_ind_unusable.sh

10 8,12,16 * * * /data/app/scripts/monitor/check_maxfilesize.sh

10 8,12,16 * * * /data/app/scripts/monitor/check_objectsize.sh

43 21 * * * 21:43 执行

15 05 * * *    05:15 执行

0 17 * * * 17:00 执行

0 17 * * 1 每周一的 17:00 执行

0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行

0-10 17 1 * * 毎月1日从 17:00到 17:10 毎隔1分钟执行

0 0 1,15 * 1 毎月1日和 15日和周一的 0:00 执行

42 4 1 * *   毎月1日的 4:42分执行

0 21 * * 1-6  周一到周六 21:00 执行

0,10,20,30,40,50 * * * * 每隔10分执行

*/10 * * * *       每隔10分执行

* 1 * * *        从1:0到1:59 每隔1分钟执行

0 1 * * *         1:00 执行

0 */1 * * *       毎时0分每隔1小时执行

0 * * * *        毎时0分每隔1小时执行

2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02 执行

30 5 1,15 * *       1日和 15日的 5:30 执行

2.3 & 后台执行命令

当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。可以使用&命令把作业放到后台执行。

如:

30 2 * * * /data/app/scripts/hotbackup/hot_database_backup.sh &

在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。

不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:

如:

command >out.file 2>&1 &

在这个例子中,2>&1表示所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。

2.42>&1 含义

先看一个例子:

0 2 * * * /u01/test.sh >/dev/null 2>&1 &

这句话的意思就是在后台执行这条命令,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null 文件,也就是清空。

在这里有有几个数字的意思:

0表示键盘输入

1表示标准输出

2表示错误输出.

我们也可以这样写:

0 2 * * * /u01/test.sh >/u01/out.file &--这里没写,默认是1

0 2 * * * /u01/test.sh 1>/u01/out.file &

0 2 * * * /u01/test.sh 2>/u01/out.file &

0 2 * * * /u01/test.sh 2>/u01/out.file 2>&1 &

将tesh.sh 命令输出重定向到out.file, 即输出内容不打印到屏幕上,而是输出到out.file文件中。

2>&1 是将错误输出重定向到标准输出。然后将标准输入重定向到文件out.file。

&1 表示的是文件描述1,表示标准输出,如果这里少了&就成了数字1,就表示重定向到文件1。

& :后台执行

测试:

ls 2>1 :不会报没有2文件的错误,但会输出一个空的文件1;

ls xxx 2>1:没有xxx这个文件的错误输出到了1中;

ls xxx 2>&1:不会生成1这个文件了,不过错误跑到标准输出了;

ls xxx >out.txt 2>&1 == ls xxx 1>out.txt 2>&1;因为重定向符号>默认是1,这句就把错误输出和标准输出都传到out.txt 文件中。

2.52>&1写在后面的原因

格式:command > file 2>&1== command 1> file 2>&1

首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。

如果改成:command 2>&1 >file

2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。

转载于:https://blog.51cto.com/flyingsnail/1198973

Linux Crontab 定时任务 命令详解相关推荐

  1. Linux crontab 定时任务命令详解

    Linux Crontab 定时任务 命令详解 [日期:2016-02-13] 来源:Linux社区 在工作中需要数据库在每天零点自动备份所以需要建立一个定时任务.我选择在Linux下使用Cronta ...

  2. linux远程date命令,linux之date命令详解

    date命令的用处 1.用于显示特殊的时间格式,可以用于对日志文件的命名 2.用于设置时间 ,不过这方面用的比较少,因为一般的服务器都设置的有自动同步网络时间 用法: date [OPTION]... ...

  3. Linux中iptraf命令详解(IP局域网监控工具)

    2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03   作者:佚名    ...

  4. linux ln(link) 命令详解

    linux ln(link) 命令详解 功能说明:连接文件或目录. 语 法:ln [-bdfinsv][-S <字尾备份字符串>][-V <备份方式>][--help][--v ...

  5. linux rm(remove) 命令详解

    linux rm(remove) 命令详解 功能说明:删除文件或目录. 语 法:rm [-dfirv][--help][--version][文件或目录...] 补充说明:执行rm指令可删除文件或目录 ...

  6. linux下dd命令详解

    linux下dd命令详解    名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果 ...

  7. linux性能测试命令h,Linux性能测试 pmap命令详解

    Linux性能测试 pmap命令详解 这里有新鲜出炉的Linux常用命令,程序狗速度看过来! Linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户 ...

  8. linux下scp命令详解

    http://www.cnblogs.com/xuxm2007/archive/2010/08/04/1792179.html linux下scp命令详解 http://www.9usb.net/20 ...

  9. linux的vi命令详解,Linux上Vi命令详解

    Linux下Vi命令详解 补充一点:在vi中使用命令的方法是:冒号+命令+回车,如:q 回车代表退出.================================================= ...

最新文章

  1. useradd 命令详解 - [命令操作]
  2. phpstorm 使用技巧
  3. python爬虫下载-用Python爬虫下载整本小说
  4. 天气模式_江西现罕见持续阴雨寡照天气 市民开启“花式吐槽”模式
  5. Android apk签名方法
  6. ARC 101 D - Median of Medians
  7. Linux 和 Vim 常用命令整理
  8. 我的程序跑了 60 多小时,就是为了让你看一眼 JDK 的 BUG 导致的内存泄漏
  9. 深入学习.NET Web Services概念
  10. 大数据学习总结(4)参考splunk架构
  11. c语言编八卦图形,关于C语言实现一个八卦图!(我代码写好了,求人改动一下)
  12. Python游戏开发工程师的起步,几款游戏开发案例
  13. 7-4 到底是不是太胖了
  14. Vscode设置用户代码片段
  15. 简述矩阵的秩和向量组的秩的定义 从定义出发分析两者之间的相互关系
  16. 亲子关系-《亲子关系全面技巧》书中的精髓:学会正确处理亲子关系的技巧,与孩子建立良好的关系。
  17. turbo linux添加打印机,如何安装Turbo Linux(3)
  18. 硬件行业知识体系概要【转】
  19. 引用dubbo服务时的ref和id分别是什么
  20. 写代码这条路,能走多远?

热门文章

  1. Spring Boot 静态资源处理,妙!
  2. nginx 反向代理和负载均衡策略实战案例
  3. 两小时入门 Docker
  4. Openresty最佳案例 | 第3篇:Openresty的安装
  5. 你要的用户画像实践来了!
  6. 从Transformer到BERT模型
  7. Model Search,了解一下?
  8. 如何防止我的模型过拟合?这篇文章给出了6大必备方法
  9. 什么,PyTorch还能开发新药?哈佛推出这款工具包,10行代码训练“药神”模型...
  10. 全球 43 亿 IPv4 地址宣告耗尽!