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

简介

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

如何使用

  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可以看到使用格式如下:

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

-u后边跟用户名

-e 代表编辑定时任务列表

-l 列出用户定时任务

file为定义定时任务的文件

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

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

转载于:https://blog.51cto.com/4436396/2051648

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值