cron Linux下的定时执行工具
说明:测试平台 Ubuntu 16.04.4 LTS
cron是一个Linux下的定时执行工具,可以在无需人工干预的情况下运行作业。所以,在Linux中,周期性执行的任务一般由cron这个守护进程来处理。cron会读取一个或多个配置文件,这些配置文件中包含了命令行命令及其执行的时间。cron的配置文件成为“crontab”,是“cron table”的简写。
crontab命令用于列出、编辑、删除、安装用于驱动cron后台进程的表格。用户把需要执行的命令序列放到crontab文件中从而获得执行。每个用户都有自己的crontab文件,其该文件名就是用户名。该存放在路径 /var/spool/cron/crontabs 下。但是 1)该路径经只能通过root权限访问,2)不能再该路径下直接编辑crontab文件,必须用 crontab -e 来编辑。
创建一个周期执行任务的步骤:
第一步 创建crontab文件,有以下2种方式(推荐第一种)。这两种方式创建的crontab文件都可以通过命令 crontab -l 查看,也都可以通过命令 crontab -e 进行编辑。
方式一:执行 crontab -e 命令,如果是第一次执行会让你选择文本编辑器,更换编辑器使用 select-editor 命令,见下图选3或者4即可使用vim编辑。打开之后编辑一条命令,见右图,然后保存。
方式二: 1)自己写一个文本文件,名字随便起,但文本内容要遵循crontab的规则。例如新建文件123.txt,在里面写 * * * * echo "This is a test" ,然后保存;
2)添加定时任务,执行 crontab .txt 命令。搞定。
第二步 启动cron服务,执行命令 sudo service cron start
crontab命令的使用及格式
crontab -l # 列出当前用户的crontab
crontab -e # 编辑当前用户的crontab
crontab -r # 删除当前用户的crontab
crontab -ir # 删除当前用户的crontab时提醒用户
在crontab文件中需要指定时间和要执行的命令或者脚本,格式如下:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
第一列 minute 表示分钟: 区间为 0 – 59 每分钟用 * 或者 */1 表示
第二列 hour 表示小时: 区间为 0 – 23
第三列 day-of-month 表示日期: 区间为 1 – 31
第四列 month 表示月份: 区间为 1 – 12. 1 是1月. 12是12月.
第五列 Day-of-week 表示星期: 区间为 0 – 7. 周日可以是0或7.
第六列 表示要运行的命令
除了数字还有几个个特殊的符号:* / - ,
*:代表所有的取值范围内的数字,即代表所有有效的值
/:代表每的意思,用来指定间隔频率, */5 表示每5个单位,
-:代表从某个数字到某个数字,指定一个整数范围,1-4 意味着整数 1 2 3 4
,:分开几个离散的数字,
举例:
每隔1个小时执行一次 ls
0 */1 * * * ls
每隔2个小时执行一次 ls
0 */2 * * * ls
每隔3个小时执行一次 ls
0 */3 * * * ls
每隔4个小时执行一次 ls
0 */4 * * * ls
每隔10天执行一次 ls
0 0 */10 * * ls
每天1点执行 ls
0 1 * * * ls
cron服务的启动和关闭
sudo service cron start # 启动cron服务
sudo service cron stop # 关闭cron服务
sudo service cron restart # 重新启动cron服务
sudo service cron reload # 重新载入状态
sudo service cron status # 查看cron服务
也可以使用如下命令,效果相同
sudo /etc/init.d/cron start # 启动cron服务
sudo /etc/init.d/cron stop # 关闭cron服务
sudo /etc/init.d/cron restart # 重新启动cron服务
sudo /etc/init.d/cron reload # 重新载入状态
sudo /etc/init.d/cron status # 查看cron服务
更多信息:
1)查看cron的manual: $man cron
2)查看crontab的manual: $man crontab
3)CronHowto:https://help.ubuntu.com/community/CronHowto
cron Linux下的定时执行工具的更多相关文章
- 一个简单的linux下设置定时执行shell脚本的示例
很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据.数据库数据等 不适合人工经常做的一些操作这里简单说下 shell Shell俗称壳,类似于DOS下的command ...
- linux下crontab定时执行本地脚本和定时访问指定url
https://my.oschina.net/u/2487410/blog/683308 使用linux curl命令讲解:http://www.linuxdiyf.com/linux/2800.ht ...
- linux下crontab定时执行shell脚本调用oracle 存储过程
问题:脚本内调用存储过程,脚本直接执行没问题,使用crontab 执行脚本存储过程未执行 原因:缺少oracle环境变量 解决:在shell脚本里添加oracle的环境变量 #!/bin/sh PAT ...
- 如何使用Linux的Crontab定时执行PHP脚本的方法[转载]
首先说说cron,它是一个linux下的定时执行工具.根用户以外的用户可以使用 crontab 工具来配置 cron 任务.所有用户定义的 crontab 都被保存在/var/spool/cron 目 ...
- linux 下的 crontab 定时任务工具
以下内容转自:https://www.cnblogs.com/longjshz/p/5779215.html 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep c ...
- linux下mysql定时备份数据库
linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈 一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...
- 【one day one linux】linux下的软件包管理工具
Linux 下的软件包管理工具 linux下的软件安装可以通过两种方式,一种是直接使用自带的软件包管理工具安装,另外一种通过编译源码安装. 1.软件包的种类 Red Hat和Fedora:redhat ...
- php 运行linux命令 与 linux下命令行执行php
1.php运行linux命令 exec函数:string exec(string command, string [array], int [return_var]); 执行函数后不输出结果,返回最 ...
- 【调试】Linux下超强内存检测工具Valgrind
[调试]Linux下超强内存检测工具Valgrind 内容简介 Valgrind是什么? Valgrind的使用 Valgrind详细教程 1. Valgrind是什么? Valgrind是一套Lin ...
随机推荐
- js 统计数组中元素的个数
var all = "02 06 11 12 19 29 09 10 12 19 22 29 08 11 13 19 28 31 07 08 09 15 22 27 10 18 19 29 ...
- TF-IDF原理及使用
1.TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率).(逆文档词频) 2.自我理解: 公式TF = $$\frac{语料库中关键词 ...
- Java Runtime
Runtime 类代表着Java程序的运行时环境,构造方法 private Runtime(){},采用单例模式,一个jvm只有一个Runtime实例对象,该类会被自动创建,我们可以通过Runtime ...
- Java 并发AQS
转载出处:http://www.cnblogs.com/waterystone/ 一.概述 谈到并发,不得不谈ReentrantLock:而谈到ReentrantLock,不得不谈AbstractQu ...
- SQLdeveloper换成windows主题后不显示的情况
这几天因为换电脑需要重新安装数据库, 因为换成了64位系统, 原先的oracle数据库也换成了64位, 但是plsql还是要用32位的, 经过深思熟虑也没装, 请教了一个同学改用oracle自带的sq ...
- cf-Global Round2-E. Pavel and Triangles
题目链接:http://codeforces.com/contest/1119/problem/E 题意:给定n个数a[i],分别表示长度为2i-1的木条的数量,问使用这些木条最多能构成多少三角形. ...
- JAVA 关于JNI本地库加载
1.调用JNI的时候,通常我们使用System.loadLibrary(String libname)来load JNI library, 同样也可以使用System.load(String file ...
- Ant 初级入门
一.Ant简介 Ant是一个Apache基金会下的跨平台的构件工具. 由于Ant是基于Java的,所以需要Java环境的支持,也就是配置好 JAVA_HOME 和 ANT_HOME 环境变量分别指向J ...
- Genymotion 模拟器上网出现 net::ERR_NAME_NOT_RESOLVED
Genymotion 模拟器在公司网络安装的,然后启动能正常上网,把笔记本带回家,网络变化了,再使用模拟器 上网显示: (net::ERR_NAME_NOT_RESOLVED) 各种百度,最后用如下方 ...
- javaweb导出excel
百度找了半天也没找到一个提供有效思路的,全都告诉我此路不通 html表格数据粘贴到txt,然后改后缀为xsl,打开,发现二者无缝对接 @参考文章.@参考前任项目 /** * @todo * @para ...