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