先来说下场景,需要写一个爬虫,定时从某个接口地址获取数据,然后存入本地数据库。
因此就需要一个可定时执行的东西,之前在the5fire的知识体系中除了可以在数据库中定时执行某个存储过程或者sql语句,如何在系统中定时执行某个任务还没有概念。
于是,请教了同事。知道在ubuntu中,准确的说是在linux中,有这么东西——crontab,专门用来定制执行任务。简单解说一番,就会用了。
虽然这个东西比较简单,但为了保证知识体系的完整,还是要查查crontab是个什么。
crontab单词的意思是:定时任务。
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρόνος),原意是时间。
通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
有了上面的概念,再来看crontab的使用就会清晰些。
既然是系统每分钟都要检查一下,那么必然要有一个检查的依据,如配置文件或者什么的。
还是来看看百科:
crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。
crontab文件的每一行均遵守特定的格式,由空格或tab分隔为数个领域,每个领域可以放置单一或多个数值。
好了,开始使用了。估计有些人从定义就知道他要怎么用了。不过我还是想记录下。
使用步骤:
1、终端运行crontab -e [解释:编辑配置文件]
2、选择你要用的编辑器,一般人会选择vi。
3、此时配置文件已打开,只需要按照他的格式写配置即可。
好吧,简单到我都觉得。。
举个例子:
在我的home目录下有一个python脚本,helloworld.py
#coding:utf-8
print'hello
world by crontab!'
我想要这个脚本在每天的早上7点30执行。
因此这个 任务的crontab配置文件就是:
#
m h dom mon dow command
307*
* * python /home/the5fire/testcrontab.py>>/home/the5fire/testcrontab.log2>&1
简单解释下,这个配置的意思就是在每天的7:30用python运行我的家目录下的testcrontab.py文件,并将输出内容输出到testcrontab.log中,后面那个2>&1的意思是把错误的输出也输出到标准输出(2表示错误,2>表示错误输出,&表示等同于,1表示正确),因此如果运行出错也会把错误输出到之前定义的log中。
另外关于合适执行命令还有些要说。
上面只是定时几点执行,那么我怎么设置它按照某一频率执行。比如每分钟执行依次。
对应的配置就是
#
m h dom mon dow command
*/1*
* * * python /home/the5fire/testcrontab.py>>/home/the5fire/testcrontab.log2>&1
再来一个场景,我想在每天的早上六点到八点之间,每隔3分钟执行一次的配置怎么写:
#
m h dom mon dow command
*/36-8*
* * python /home/the5fire/testcrontab.py>>/home/the5fire/testcrontab.log2>&1
到此应该都会使用了吧,五个星号表示不同的执行单位(分、时、日、月、年),而那个反斜线表示频率。
分享到:
相关推荐
Ubuntu-使用crontab定时任务详细使用
Linux中定时计划任务crontab使用实例linux操作系统电脑资料.doc
linux定时执行,crontab命令使用介绍.pdf
linux定时执行,crontab命令使用介绍借鉴.pdf
Unix和Linux系统的各个发行版本基本都支持Cron,Cron /Crontab允许我们在设定的时间自动执行或定时执行某个任务,如应用程序或脚本。 许多的php程序员都可以很快完成Web应用的开发,PHP代码的调试也比PERL或C语言...
易语言 Crontab 定时任务执行模块 v1.2 支持单位秒 也可做计时器源码。函数列表[td]。函数详情。@vSpear。
如何定时启动shell脚本 写好shell 脚本 创建和编辑 crontab 文件 验证 crontab 文件是否存在
最近在工作中遇到了一些问题,crontab定时任务居然不执行,后来我在网上找的时候发现网上主要说了这5个原因: 1 crond服务未启动 crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以...
linux 定时任务 crontab 详细解释 cron服务提供crontab命令来设定cron服务
Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍能记住了,关键是要记住/var/spool/cron这个目录。下面看一下...
Linux运维-2系统管理-15系统管理-174定时任务之crontab使用.avi
专题资料(2021-2022年)Linux定时执行程序Crontab.docx
centos6.9默认yum无法下载crontab, 整理成功安装后的离线安装软件包上传供大家使用
Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍就能记住了,关键是要记住/var/spool/cron这个目录。...
springboot的定时任务配置和linux的crontab一样例子.zipspringboot的定时任务配置和linux的crontab一样例子.zipspringboot的定时任务配置和linux的crontab一样例子.zip
thinkphp 5.1 定时任务,Crontab 计划任务-think-cron
linux crontab 命令,最小的执行时间是一分钟。这篇文章主要介绍了linux定时任务crontab 实现每秒执行一次的方法,需要的朋友可以参考下
在ubuntu服务器上设置定时任务 可以使用crontab,这个工具还是非常简单的 * * * * * command 这就是crontab命令的格式,在cmd输入 crontab -e 就可以进入编辑的界面。 上面的格式对应着分钟、小时、月里面的天(1-...
linux定时执行crontab.pdf