每天学一点儿shell:Linux中crontab的用法
文章目录
- 1、crontab命令说明
- 2、crontab命令
- 3、crontab注意事项
- 4、crontab使用实例
- 5、crontab其他案例
- 1、每天 02:00 执行任务
- 2、每天 5:00和17:00执行任务
- 3、每 10min 执行一次任务
- 4、在每周五、周日的17点执行任务
- 5、每隔2个小时`整点`执行一个任务
- 6、每个30秒执行一次任务
- 7、多个任务在一条命令中配置
1、crontab命令说明
在CenOS系统中输入如下命令,查看crontab的配置
[root@hadoop-master ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root# For details see man 4 crontabs# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
从上面的例子可以看出,表达式一共有5位
- 第1位:代表分钟,取值范围是0-59
- 第2位:代表小时,取值范围是0-23
- 第3位:代表日期,取值1-31
- 第4位:代表月份,取值1-12或者使用缩写jan,feb,mar,apr …
- 第5位:代表星期,取值0-7,Sunday=0(第1天)或者sunday=7(最后1天),或者使用缩写sun,mon,tue,wed,thu,fri,sat
比较特殊的特殊字符用法
特殊字符 | 解释 |
---|---|
* | 代表所有的取值范围内的数字,如分钟为*代表从0-59的每一分钟执行1次 |
/ | 代表每间隔一定时间的意思,如分钟为*/10代表每隔10分钟执行1次 |
- | 代表从一个区间范围,是一个闭区间,如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次。 |
, | 分散的数字(不一定连续),如小时为2,3,4代表2点3点4点的某个时间执行 |
2、crontab命令
命令格式:
crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
选项 | 解释 |
---|---|
-u user | 用于设定某个用户的crontab服务 |
file | file是命令文件名,表示将file作为crontab的任务列表文件并载入crontab |
-e | 编辑用户的crontab文件内容,如不指定用户则默认当前用户 |
-i | 显示某个用户的crontab文件内容,如果不指定用户则默认当前用户 |
-r | 从/var/spool/cron目录中删除某个用户的crontab文件 |
-i | 在删除用户的crontab文件时给确认提示 |
3、crontab注意事项
- crontab有2种编辑方式:直接编辑/etc/crontab文件与crontab –e,其中/etc/crontab里的计划任务是系统中的计划任务,而用户的计划任务需要通过crontab –e来编辑;
- 每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。
- crontab中的command尽量使用绝对路径,否则会经常因为路径错误导致任务无法执行。
- 新创建的cron job不会马上执行,至少要等2分钟才能执行,可从起cron来立即执行。
- %在crontab文件中表示“换行”,因此假如脚本或命令含有%,需要使用%来进行转义。
4、crontab使用实例
首先,编辑crontab定时任务文件
[root@hadoop-master crontab_test]# crontab -e
添加自定义的执行命令,下面的命令是每小时的10分11分12分执行,并将日志输出到日志文件中
10,11,12 * * * * sh /usr/local/test/crontab_test/crontab_demo.sh >> /usr/local/test/crontab_test/crontab.log 2>&1 &
其中crontab_demo.sh
内容如下:
[root@hadoop-master crontab_test]# cat crontab_demo.sh
#!/bin/bash
echo "这是一个crontab测试:"`date +"%Y-%m-%d %T"`
上面的执行结果为:
[root@hadoop-master crontab_test]# tail -f crontab.log
这是一个crontab测试:2020-09-26 11:11:01
这是一个crontab测试:2020-09-26 11:12:01
5、crontab其他案例
1、每天 02:00 执行任务
0 2 * * * sh /usr/local/test/crontab_test/crontab_demo.sh
2、每天 5:00和17:00执行任务
0 5,17 * * * sh /usr/local/test/crontab_test/crontab_demo.sh
3、每 10min 执行一次任务
*/10 * * * * sh /usr/local/test/crontab_test/crontab_demo.sh
4、在每周五、周日的17点执行任务
0 17 * * sun,fri sh /usr/local/test/crontab_test/crontab_demo.sh
5、每隔2个小时整点
执行一个任务
0 */2 * * * sh /usr/local/test/crontab_test/crontab_demo.sh
6、每个30秒执行一次任务
* * * * * sh /usr/local/test/crontab_test/crontab_demo.sh
* * * * * sleep 30; sh /usr/local/test/crontab_test/crontab_demo.sh
7、多个任务在一条命令中配置
* * * * * /scripts/script.sh; /scripts/scrit2.sh
一个测试crontab表达式在线地址:
https://www.matools.com/crontab
每天学一点儿shell:Linux中crontab的用法相关推荐
- linux中crontab的用法
一:crontab 简介 crontab是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动 ...
- AIX 与Linux 中crontab 介绍
AIX 与Linux 中crontab 用法相似,先介绍Linux 中的Crontab 用法,再后介绍AIX 与Linux 的不同之处. 一.Crontab 介绍 crontab命令的功能是在一定 ...
- linux crontab不运行,Linux运维知识之解决Linux中crontab不执行ntpdate问题
本文主要向大家介绍了Linux运维知识之解决Linux中crontab不执行ntpdate问题,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 解决Linux中crontab尚未 ...
- Linux中crontab无法执行java程序的问题
Linux中crontab无法执行java程序的问题 jdk环境变量配置问题:可以用全路径来解决: 竟然是kill -9之后,后面的脚本都不运行,这个还没有找到原因啊: 即便是系统级别的 ls 命令, ...
- 查询linux上调度命令,浅析Linux中crontab任务调度
一.创建调度任务 指令 crontab -e 进入当前用户编辑界面 crontab -u 用户名 -e 进入指定用户编辑界面 进入crontab任务编辑界面 任务编写格式 #每分钟执行查看一次/ect ...
- linux中EOF的用法梳理
2019独角兽企业重金招聘Python工程师标准>>> linux中EOF的用法梳理 在linux运维工作中,我们会碰到这样一个场景: 执行脚本的时候,需要往一个文件里自动输入N行内 ...
- linux中make的用法
一.linux中make的用法 目的: 基本掌握了make 的用法,能在Linux系统上编程. 环境: Linux系统 准备: 准备三个文件:file1. ...
- linux ksh 用户名,实例讲解Linux中ksh的用法
实例讲解Linux中ksh的用法 发布时间:2008-02-18 20:46:01来源:红联作者:Modegle 熟悉Linux的朋友肯定都知道bash,它是Linux默认的命令行解释程序,熟悉Sol ...
- Linux之make的用法讲解,linux中make的用法
1.linux中make的用法 目的: 基本掌握了make 的用法,能在Linux系统上编程. 环境: Linux系统 准备: 准备三个文件:file1.c, file2.c, file2.h fil ...
最新文章
- 计算机水平flash试题,计算机flash考试试题
- 道歉无用!被 Linux “拉黑”的明尼苏达大学还在努力重获信任
- Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-
- SAP Netweaver后台作业的几种状态
- Atom React或前端插件推荐
- UNION ALL returning wrong results?
- python 数据库模块
- centos 7 Hadoop2.7.4完全分布式搭建(一)
- 林语堂:读书须有胆识,有眼光,有毅力
- pdf2htmlex 中的字体嵌入
- Qt制作简单的视频播放器(实现循环播放以及点击暂停)
- Xshell 7免费版下载及安装
- 图书馆管理系统可行性分析报告----软件工程
- 预测控制matlab程序,预测控制matlab程序
- 苹果手机测距离_3D传感市场要变天!苹果力推之下,dToF将成新风口!
- 联想Y7000装双系统win10+Ubuntu16.04后在Ubuntu上Wifi被禁用的解决办法
- 社区新闻舆情报道收集工作怎么做好的方法
- 微信后台 phxrpc (v0.8) 之 Timer(二)
- ZooKeeper知识点整理
- 编写mysql存储过程
热门文章
- SAP 打开SAP物料帐期和财务账期
- 物料BOM和生产订单BOM的区别
- 即使有历史最佳年报,安踏的未来依然有三重重担
- 大学计算机基础实验指导试题,(大学计算机基础实验指导)模拟试题(二)参考答案...
- jquery找祖先包含_Jquery的parent和parents(找到某一特定的祖先元素)
- 使用jdbc操作mysql数据库_java使用JDBC操作MYSQL数据库
- mysql 重置root_MySQL 重置Mysql root用户账号密码
- flutter 代码仓库_go-flutter开发桌面应用(二) 创建go-flutter插件
- python希尔排序的优缺点_Pythonの希尔排序
- linux 找出耗io的,linux根据io消耗找进程