一.  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

oracle  root

我们直接查看这个文件,里面的内容和对应用户显示的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

Crontab  is 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,  and  though these  are  files in /var/spool/ , they are not intended to be edited directly. For SELinux in mls mode can be even more crontabs  -  for  each  range.  For  more  see selinux(8).

If  the  cron.allow  file  exists,  then  you must be listed therein in order to be allowed to use this command.  If  the  cron.allow  file  does  not  exist  but  the cron.deny  file  does  exist,  then you must not be listed in the cron.deny file in order to use this command.  If neither of these files exists, only the  super  user will be allowed to use this command.

OPTIONS

-u     It  specifies  the name of the user whose crontab is to be tweaked.  If this  option is not given, crontab examines "your" crontab, i.e., the  crontab  of the  person  executing the command.  Note that su(8) can confuse crontab and               that if you are running inside of su(8) you should always use the -u  option              for  safety¡¯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.

-l     The current crontab will be displayed on standard output.

-r     The current crontab will be be removed.

-e     This  option  is 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.

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

-s     It will append the current SELinux security context string as  an  MLS_LEVEL setting  to  the  crontab 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 new  command syntax  differs  from previous 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

4th Berkeley Distribution       16 Januar 2007                      CRONTAB(1)

2.2  Crontab格式说明

我们可以用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到7: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.5  2>&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,但标准错误仍然保持在终端。

crontab的用法 linux,linux crontab用法相关推荐

  1. linux下crontab命令的用法,linux 定时任务crontab用法详解

    linux 定时任务crontab用法详解 linux中crontab命令用于设置周期性被执行的指令,该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读 ...

  2. crontab的用法 linux,linux下定时执行任务的方法及crontab 用法说明(收集整理)

    linux下定时执行任务的方法 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时 ...

  3. linux的crontab用法与实例

    linux的crontab用法与实例 crontab的适用场景 在Linux系统的实际使用中,可能会经常让系统在某个特定时间执行某些任务的情况,比如定时采集服务器的状态信息.负载状况:定时执行某些任务 ...

  4. 每天学一点儿shell:Linux中crontab的用法

    文章目录 1.crontab命令说明 2.crontab命令 3.crontab注意事项 4.crontab使用实例 5.crontab其他案例 1.每天 02:00 执行任务 2.每天 5:00和1 ...

  5. linux中crontab的用法

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

  6. Linux定时器crontab用法

    初识定时器 在Linux终端通过crontab -e命令,向文件中写入*/1 * * * * /home/ysl/tmp/SendMail.py(crontab表达式),即添加了一项每1分钟执行1次的 ...

  7. linux定时任务crontab 时间,shell后台定时任务时crontab的用法

    语法:crontab[-u username]|-l|-r|-e|-v -u:指定crontab job的用户 -l:列出当前crontab的job -e:使用$EDITOR编辑crontab job ...

  8. 【Linux】crontab用法详解

    crontab命令用于设置周期性被执行的命令,适用于日志备份,清理缓存,健康状态检测等场合. crontab的配置文件:/etc/crontab 配置文件内容各部分含义如下: 配置文件分七个字段,分别 ...

  9. linux刷新指定URL脚本,【图片】linux下crontab定时执行本地脚本和定时访问指定url【不要牧师吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 8. 任务调度设置文件的写法 可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/ ...

最新文章

  1. 9周的项目实训从今天就开始了,
  2. WINCE5.0+2443 camera中断不能进来的原因
  3. 你以为A10 Networks只做应用交付?
  4. 多线程通信—生产者和消费者模式
  5. 基于HLS格式的低延时互动直播技术
  6. 博达路由器如何配置互联网ip_如何成为技术大牛第七步——路由器下接交换机单臂路由配置方法...
  7. _04媒体文件的读取
  8. 用Heartbeat构建Web Ha
  9. Android Clipboard(复制/剪贴板)
  10. servlet的配置(映射)以及生命周期
  11. 神经网络与深度学习第5章:卷积神经网络 阅读提问
  12. 机械优化设计c语言鲍威尔法,机械优化设计C语言程序.doc
  13. 51单片机之CHQ1838红外接收(NEC协议)
  14. 听精品教学展示课后感
  15. pack_padded_sequence,pad_packed_sequence
  16. Java纯后端生成PDF格式报表的三种方案(包含echarts图表)
  17. 农夫山泉有点牛!港股打新把暗盘系统都整崩溃了
  18. 安卓 获取屏幕坐标(点击屏幕获取坐标)
  19. 怎么修改html模板里的背景,怎么修改网页背景
  20. Podman容器之签名分发与网络

热门文章

  1. 特斯拉Model Y正式发布:售价已公布 预计明年开始量产
  2. 虚拟机使用小tips
  3. 芽豆一姐助力「刘仪伟-红旗甄选」首日开播粉丝破十万
  4. 上拉电阻和下拉电阻_以按键举例
  5. 用FME创建AutoCAD的尺寸注记
  6. 设非空二叉树的所有子树中,其左子树上的结点值均小于根结点值,而右子树上的结点值均不小于根结点值,则称该二叉树为排序二叉树。对排序二叉树的遍历结果为有序序列的是
  7. 运动会计算机学院的方队,急求计算机学院运动会方队口号
  8. 腾讯云~Redis6.2.6 伪集群 哨兵模式_搭建
  9. arch linux简体中文,Arch Linux Archive (简体中文)
  10. 一文入门HTML+CSS+JS(样例后续更新)