linux定时任务-crontab命令的使用方法

简介

crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务相似,当安装完成操做系统后,默认会安装此服务工具,而且会自动启动crond进程,crond进程每分钟会按期检查是否有要执行的任务,若是有要执行的任务,则自动执行该任务。 linux

如何使用

  1. 首先查看帮助
[root@dmp004 orderreport]# crontab -h
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)

经过usage能够看到使用格式以下:shell

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

-u后边跟用户名ide

-e 表明编辑定时任务列表工具

-l 列出用户定时任务this

file为定义定时任务的文件操作系统

其余参数一目了然,其中file的格式很重要code

minute hour day month week command

文件中共包含六个字段,前五个字段为时间,最后一个字段为要执行的命令。进程


minute 表示分钟,能够是0-59
hour 表示小时,能够是0-23
day 表示天,能够是1-31
month表示月,能够是1-12
week 表示周几,能够是0-7
command表明要执行的命令,能够是linux命令,也能够是shell脚本 事件

时间字段中:
星号* 表明任什么时候间
逗号, 好比hour是 “3,4,9” 表明3点、4点、9点都要执行
横杠- 表明范围 好比hour是“3-9”,表明3点至9点都要执行
斜线\/ 表明时间间隔 好比hour是 “0-23/2”,表明在0至23点之间,每两个小时执行一次

经常使用

1.查看当前用户下的定时任务

[root@dmp004 orderreport]# crontab -l
50 17 * * * /home/mofei/task/orderreport/start.sh

2.查看用户root下的定时任务

[root@dmp004 orderreport]# crontab -u root -l
50 17 * * * /home/mofei/task/orderreport/start.sh

3.给root用户添加定时任务
定义test.task,内容以下:

* * * * * echo 'this is a test'

添加到定时任务列表

[root@dmp004 orderreport]# crontab -u root test.task
[root@dmp004 orderreport]# crontab -u root -l
* * * * * echo 'this is a test'

4.删除root的定时任务

[root@dmp004 orderreport]# crontab -u root -r

特别提示


当给非登陆用户(好比:hdfs)添加任务时,最好先切换到hdfs,执行如下任务,避免因权限问题,致使任务未执行的问题

[root@dmp004 orderreport]# su hdfs
[hdfs@dmp004 orderreport]$ ./start.sh
[hdfs@dmp004 orderreport]$ ./start.sh: line 3: /home/mofei/task/orderreport/17-11-07.log: Permission denied
相关文章
相关标签/搜索