Centos下运行定时任务Crontab命令介绍
1.Cron的启动与关闭
因为Cron是Linux的内置服务。能够用下面的方法启动.关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重新启动服务
/sbin/service crond reload //又一次加载配置
2.Cron配置文件
2.1全局配置文件
crontab在/etc文件夹以下存在cron.hourly,cron.daily,cron.weekly,cron.monthly,cron.d五个文件夹和crontab,cron.deny二个文件.
cron.daily是每天运行一次的job,cron.weekly是每一个星期运行一次的job.cron.monthly是每月运行一次的job,cron.hourly是每一个小时运行一次的job.cron.d是系统自己主动定期须要做的任务,可是又不是按小时,按天,按星期,按月来运行的,那么就放在这个文件夹以下.
/etc/crontab文件一般例如以下:
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
我们可在此文件里加入自己须要的cron job.
/etc/cron.deny文件就是用于控制不让哪些用户使用Crontab的功能.
2.2用户配置文件
每一个用户都有自己的cron配置文件,通过crontab -e 就能够编辑,普通情况下我们编辑好用户的cron配置文件保存退出后,系统会自己主动就存放于/var/spool/cron/文件夹中,文件以username命名.
linux的cron服务是每隔一分钟去读取一次/var/spool/cron,/etc/crontab,/etc/cron.d以下全部的内容.
3.Cron命令格式
crontab [ -u user ] 文件
crontab [ -u user ] { -l | -r | -e }
-u:指定某一用户
-e:运行文字编辑器来设定用户(当前用户或指定用户)时程表,内定的文字编辑器是vi.
-r:删除用户时程表.
-l:列出用户时程表.
4.Cron文件格式
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59, 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要执行的命令
5.Cron文件使用说明
5.1 普通情况
当f1 为 * 时表示每分钟都要运行 program,f2 为 * 时表示每小时都要运行程序,其余类推.
* * * * * /bin/usershell 每天每分钟运行一次/bin/usershell
当f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要运行,f2 为 a-b 时表示从第 a 到第 b 小时都要运行,其余类推.
0-12 * * * * /bin/usershell 每天每小时从0到12分钟每分钟运行一次/bin/usershell
当f1 为 */n 时表示每 n 分钟个时间间隔运行一次,f2 为 */n 表示每 n 小时个时间间隔运行一次,其余类推.
* */2 * * * /bin/usershell 每天每2小时运行一次/bin/usershell
当f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要运行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要运行,其余类推.
* 1,3,5,7 * * * /bin/usershell 每天每逢1,3,4,7点运行一次/bin/usershell
5.2. 冲突逻辑
日期能够用月限定,也能够用“星期”指定,假设两个段有冲突,那么,第六段的命令将在匹配不论什么一个的情况下都执行,比方
"30 4 1,15 * 5",将在每月的1号和15号加每一个周五,上午4:30执行.
5.3. 符号"%"
"%"在Cron文件里,有"结束命令行","换行","重定向"的作用,假如不须要"%"的特殊作用,须要使用转义符转义.
5.4. @reboot
这个不须要理解,为了达到在开机后执行,且仅仅执行一次的目的.除了这个,也无法通过前五段的设置来实现.
@annually也是这个功能.
至于@yearly,@monthly等等事实上都能够用上面的五段来设置.
然后我自己写了一个小样例做了下測试:
使用crontab -e进行编辑,内容为:
*/2 * * * * echo "i am crontab" >> /home/zhang/hello
这样隔两分钟就会往hello这个文件中写i am crontab
我自己写了一个脚本task.sh,直接执行task.sh时能够执行,但是加到crontab里就有执行了,后来我查看了网上的解决方法,最终攻克了,先来看一下我原来写的task.sh脚本吧:
#!/bin/sh
java -jar offergateway.biz.offer-1.0-SNAPSHOT.jar
crontab定时任务的写法为:
* * * * * /task.sh
后来我查了网上说要执行crontab,必须使用绝对路径,然后我把路径都改成绝对路径了。
在crontab的运行环境变量中,没有对应用户设置的环境变量。你须要手动设置一下环境变量。才干让它生效。
于是我把上面的脚本改成:
#!/bin/sh
. /etc/profile
java -jar /home/zhang/offergateway.biz.offer-1.0-SNAPSHOT.jar
crontab也改成绝对路径:
* * * * * sh /home/zhang/task.sh
哈哈,成功了~~happy~~
Centos下运行定时任务Crontab命令介绍的更多相关文章
- 【转帖】Linux定时任务Crontab命令详解
Linux定时任务Crontab命令详解 https://www.cnblogs.com/intval/p/5763929.html 知道有crontab 以及 at 命令 改天仔细学习一下 讲sys ...
- Linux定时任务Crontab命令详解_转
转自:Linux定时任务Crontab命令详解 (部分修改) linux 定时系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服 ...
- centos下yum安装crontab+mysql自动备份
参考博文: centos下yum安装crontab yum install vixie-cron crontabs //安装 chkconfig crond on ...
- 在Ubuntu下运行 apt-get update命令后出现错误:
在Ubuntu下运行 apt-get update命令后出现错误: The package lists or status file could not be parsed or opened sud ...
- CentOS下crond定时任务详细介绍
目录 1.定时任务crond介绍... 2.crond定时任务限权... 3.Crontab用法... 4.Crontab命令的书写格式... 5.定时服务器时间同步... 6.写定时任务注意点.. ...
- CentOS 下运行Docker 内执行 docker build 命令的简单方法
1. 通过部分文档进行学习...主要知识来源 https://blog.csdn.net/shida_csdn/article/details/79812817 2. 下载 docker 的rpm包. ...
- Linux 定时任务 Crontab命令 详解
前言 crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比 ...
- 定时任务 Crontab命令 详解
crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用 crontab,那么任务就是常驻程序,这对你的程序要求比较高 ...
- Linux 设置定时任务crontab命令
1. crontab命令概念 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使 ...
随机推荐
- Ubuntu 16.04重启Nautilus
关闭: nautilus -q 启动: 不要在命令行启动,直接在Dash中找到“文件”,然后启动,这样就可以在后台直接运行.
- MathType中带上下标字符不对其
如图,上面的好看,下面的就不好看的. 上面的图使用下图下面的形式,下面的图是用的是上面的形式. 如图可以看出,右侧的更好. 比如UiTVj这样的,需要分别都用下面的形式,不能UiT用上面的,Vj直接输 ...
- errno错误码及含义(中文)
/usr/include/asm/errno.h #define EPERM 1 /* Operation not permitted */操作不允许 #define ENOENT 2 /* No s ...
- 基于指定文本的百度地图poi城市检索的使用(思路最重要)
(转载请注明出处哦)具体的百度地图权限和apikey配置以及基础地图的配置不叙述,百度地图定位可以看这个链接的http://blog.csdn.net/heweigzf/article/details ...
- Unity 加密解密
解密无非就为了 修改游戏功能数据.提取游戏资源.加入自己想加的广告...加密就是保护游戏不被恶意修改,经常看到有人说:"加什么密,你以为自己写的代码很NB?见不得人?"我只想说,加 ...
- pycharm的插件pylint报错:java.lang.Throwable: Write-unsafe context! Model changes are allowed from write-safe contexts only. Please ensure you're using invokeLater/invokeAndWait with a correct modality stat
java.lang.Throwable: Write-unsafe context! Model changes are allowed from write-safe contexts only. ...
- Windows最常用的8个网络CMD命令总结
一,ping 它是用来检查网络是否通畅或者网络连接速度的命令.作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP ...
- RDD原理与详解
RDD详解 原文连接 http://xiguada.org/spark_rdd/ RDD(Resilient Distributed Datasets弹性分布式数据集),是spark中最重要的概念,可 ...
- 云计算之路-Azure vs 阿里云:从负载均衡中摘/挂虚拟机
@小尾鱼 在 试用Azure:上不了高速的跑车,无法跨Cloud Service的DNS服务器一文的评论中提了一个很好的问题: 问个问题,使用了负载均衡以后,程序发布的时候博客园是怎么避免用户访问到正 ...
- STL_算法_区间的比較(equal、mismatch、 lexicographical_compare)
C++ Primer 学习中.. . 简单记录下我的学习过程 (代码为主) //全部容器适用 equal(b,e,b2) //用来比較第一个容器[b,e)和第二个容器b2开头,是否相等 e ...