cron,linux定时执行工具详解及实例

使用cron定时执行任务 本文主要介绍Unix系统中用于定时执行任务的cron守护程序和crontab配置表的文件格式,并对自动执行脚本文件时的注意事项进行了说明 阅读详情

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:  
  
/sbin/service crond start //启动服务   
/sbin/service crond stop //关闭服务   
/sbin/service crond restart //重启服务   
/sbin/service crond reload //重新载入配置   
你也可以将这个服务在系统启动的时候自动启动:  
  
在/etc/rc.d/rc.local这个脚本的末尾加上:  
/sbin/service crond start  
  
现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:  
  
1 .直接用crontab命令编辑  
  
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:  
  
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数   
  
crontab -l //列出某个用户cron服务的详细内容   
  
crontab -r //删除某个用户的cron服务   
  
crontab -e //编辑某个用户的cron服务   
  
比如说root查看自己的cron设置:crontab -u root -l  
  
再例如,root想删除fred的cron设置:crontab -u fred -r  
  
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e  
  
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1  * * * * ls >> /tmp/ls.txt  
  
这 个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以 了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:  
  
分钟 (0 - 59 )  
  
小時 (0 - 23 )  
  
日期 (1 - 31 )  
  
月份 (1 - 12 )  
  
星期 (0 - 6 ) //0代表星期天   
  
除了数字还有几个个特殊的符号就是"*" 、 "/" 和 "-" 、 "," ,*代表所有的取值范围内的数字, "/" 代表每的意思, "*/5" 表示每 5 个单位, "-" 代表从某个数字到某个数字, "," 分开几个离散的数字。以下举几个例子说明问题:  
  
每天早上6 点  
  
0   6  * * * echo  "Good morning."  >> /tmp/test.txt  //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。   
  
每两个小时  
  
0  */ 2  * * * echo  "Have a break now."  >> /tmp/test.txt  
  
晚上11 点到早上 8 点之间每两个小时,早上八点  
  
0   23 - 7 / 2 , 8  * * * echo  "Have a good dream:)"  >> /tmp/test.txt  
  
每个月的4 号和每个礼拜的礼拜一到礼拜三的早上 11 点  
  
0   11   4  *  1 - 3  command line  
  
1 月 1 日早上 4 点  
  
0   4   1   1  * command line  
  
每 次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件 中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文 件修改后不需要重新启动cron服务。  
  
2 .编辑/etc/crontab 文件配置cron  
  
cron 服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用 cron服 务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:  
  
SHELL=/bin/bash  
PATH=/sbin:/bin:/usr/sbin:/usr/bin  
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号   
HOME=/ //使用者运行的路径,这里是根目录   
# run-parts  
01  * * * * root run-parts /etc/cron.hourly  //每小时执行/etc/cron.hourly内的脚本   
02   4  * * * root run-parts /etc/cron.daily  //每天执行/etc/cron.daily内的脚本   
22   4  * *  0  root run-parts /etc/cron.weekly  //每星期执行/etc/cron.weekly内的脚本   
42   4   1  * * root run-parts /etc/cron.monthly  //每月去执行/etc/cron.monthly内的脚本   
  
大家注意"run-parts" 这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。  
   
以下转自:http://hi.baidu.com/hdsoft/blog/item/3f33882b623ab7f9e6cd4008.html    
crontab task 格式   
  
* * * * * task  
分 时 日 月 周 task  
  
第1 列 分钟 1 ~ 5   9  ( 0 表示 0 分)  
第2 列 小时 1 ~ 2   3 ( 0 表示子夜)  
第3 列 日 1 ~ 3   1    
第4 列 月 1 ~ 1   2    
第5 列 星期 0 ~ 6 ( 0 表示星期天)  
第6 列 要运行的命令  
  
一些例子:  
30   21 * * * /apps/bin/cleanup.sh  
上面的例子表示每晚的2   1  :  3   0 运行/ a p p s / b i n目录下的c l e a n u p . s h。  
45   4   1 , 10 , 22  * * /apps/bin/backup.sh  
上面的例子表示每月1 、 1   0 、 2   2 日的 4  :  4   5 运行/ a p p s / b i n目录下的b a c k u p . s h。  
10   1  * *  6 , 0  /bin/find -name  "core"  -exec rm {} ;  
上面的例子表示每周六、周日的1  :  1   0 运行一个f i n d命令。  
0 , 30   18 - 23  * * * /apps/bin/dbcheck.sh  
上面的例子表示在每天1   8  :  0   0 至 2   3  :  0   0 之间每隔 3   0 分钟运行/ a p p s / b i n目录下的d b c h e c k . s h。  
0   23  * *  6  /apps/bin/qtrend.sh  
上面的例子表示每星期六的11  :  0   0  p m运行/ a p p s / b i n目录下的q t r e n d . s h  
  
实现定时task的两种方式  
一种是编辑一个文件,用crontab 载入  
一种是用crontab -e 直接编辑生效  
  
我自己一个例子  
  
每隔以一分钟往一个文件打入一堆字符  
先vi crontab1  
#every minute echo char  to file  
1 - 59  * * * * echo `date` " ljn"  >> /opt/lijie/lj.txt  
最好加上注释  
这样就能明确当前的这个定时任务的目的  
然后 crontab crontab1载入crontab1这个定时任务  
  
   
  
另外一种是  
crontab -e  
#every minute echo char  to file  
1 - 59  * * * * echo `date` " ljn"  >> /opt/lijie/lj.txt  
  
date 用单引号,是表示如果date是一个命令,就作为命令执行  
如果你直接用date ,那么输出的是"date" 这个字符串,而不是date这个命令的执行结果  
  
>> 是附加到文件末尾,而>是直接覆盖文件  
  
如果crontab -e无法编辑  
那么是你的环境变量没有配置  
请你进入 vi /etc/profile  
加上  
EDITOR=vi  
export EDITOR  

  

crontab -l 列出所有定时任务   
如果要删除一个定时任务  
那么  
crontab -e  
注释掉对应定时任务语句  
例如要删除我刚刚定义的那个定时任务  
#every minute echo char  to file  
1 - 59  * * * * echo `date` " ljn"  >> /opt/lijie/lj.txt  
只需要  
#every minute echo char  to file  
#1 - 59  * * * * echo `date` " ljn"  >> /opt/lijie/lj.txt  
  
定时运行java例子:  
0   5  * * * /root/herosReport_day.sh  
  
cat herosReport_day.sh   
#!/bin/sh  
/opt/jdk1.5 /bin/java -Dfile.encoding=UTF- 8  -Xmx512m -cp /opt/baofeng_paihangbang/program/lib/commons-email- 1.0 .jar:/opt/baofeng_paihangbang/program/lib/activation.jar:/opt/baofeng_paihangbang/program/lib/ant.jar:/opt/baofeng_paihangbang/program/lib/commons-codec- 1.3 .jar:/opt/baofeng_paihangbang/program/lib/commons-collections- 3.1 .jar:/opt/baofeng_paihangbang/program/lib/commons-configuration- 1.1 .jar:/opt/baofeng_paihangbang/program/lib/commons-dbcp- 1.2 . 1 .jar:/opt/baofeng_paihangbang/program/lib/commons-httpclient- 3.1 -alpha1.jar:/opt/baofeng_paihangbang/program/lib/commons-io.jar:/opt/baofeng_paihangbang/program/lib/commons-lang- 2.1 .jar:/opt/baofeng_paihangbang/program/lib/commons-logging.jar:/opt/baofeng_paihangbang/program/lib/commons-pool- 1.2 .jar:/opt/baofeng_paihangbang/program/lib/dom4j.jar:/opt/baofeng_paihangbang/program/lib/dom.jar:/opt/baofeng_paihangbang/program/lib/jaxen-core.jar:/opt/baofeng_paihangbang/program/lib/jaxen-jdom.jar:/opt/baofeng_paihangbang/program/lib/jdom.jar:/opt/baofeng_paihangbang/program/lib/log4j.jar:/opt/baofeng_paihangbang/program/lib/mysql-connector-java- 3.0 . 9 -stable-bin.jar:/opt/baofeng_paihangbang/program/lib/saxpath.jar:/opt/baofeng_paihangbang/program/ com/community/AnalysisTop/DataAnalysisTopMain;  
  
   
  
如果用crontab -r  
就删除拉所有的定时任务  
  
   
  
特别注意:  
1 , 如果用crontab 文件来载入定时任务,将会冲掉定时任务  
所以如果要新增定时任务,最好就用crontab -e来新增定时任务  
不要用crontab 文件。  
  
2 , crontab的日志文件为 /var/log/cron  
  
3 , 如果使用 crontab <filename> 来设置cron,一定要注意文件乱码的问题。我就碰到一个问题,/var/log/cron 日志里面显示 Dec  28   11 : 34 : 00  TARGET CROND[ 13449 ]: (hnuc) CMD (/home /hnuc/shell/t.sh^M) 后面的~M是乱码,原因是:我是使用editplus编辑的cron file,里面的回车换行符号是dos的 而不是linux或者unix的。 这里的^M 实际上是个dos的换行符,在linux环境下解析成这个了。  
   
  
   
   
 原文地址 http://blog.ouc.edu.cn/2007/01/cronlinux.html    

Cron 用法 Cron 是 Linux 和类 Unix 系统中用于定时执行任务的工具,它允许用户按照特定的时间计划来运行脚本、程序或命令。下面为你详细介绍 Cron 的用法。 阅读详情

相关推荐

物联网技术-第2章-物联网技术架构

• 物联网具有很强的异构性• 为实现异构设备之间的互联、互通与互操作,物联网需要以一个开放的分层的可扩展的为框架。

m0_73804764的博客 2978

Linux计划任务(Cron):小白完全指南

在Linux系统中,计划任务(Cron)是一种强大的工具,可以自动执行预定的任务。它非常适合定期运行脚本、备份数据、清理临时文件等一系列重复性任务。本文将向您介绍如何使用Cron来安排和管理计划任务,以帮助小白用户轻松上手。二、查看和编辑任务列表。四、Cron表达式示例。

pengpeng0121的博客 107万+

《科研伦理与学术规范》期末考试答案2023

26单选(2 分)某学术杂志的评稿人同时是某高校相关专业的硕士生导师,在评判一个稿件的时候,他发现该作者研究的题目很有价值, 他便一边压下这个稿子,一边将稿子的纲要传给自己门下的硕士生, 指导他们使用这个题目独立写出一篇论文,并帮助他们发表在其他期 刊上。D.要善待实验动物,是指在饲养管理和使用实验动物过程中,要采取有效措施,使实验动物免遭不必要的伤害、饥渴、不适、惊恐、折磨、疾病和疼痛,保证动物能够实现自然行为,受到良好的管理与照料,为其提供清洁、舒适的生活环境。张某在压力之下不得不屈从。

Glenseeds的博客 4万+

linux任务调度器:定时执行任务的工具 cron详解

Cron 是 Linux 和 Unix-like 操作系统中守护进程(daemon),用于调度周期性任务。Cron 可安排在特定时间运行的命令,如每天备份数据库、每周清理日志文件等。Cron 成为系统管理员日常工作中不可或缺的工具。cron 是一种基于时间的作业调度器,它允许用户安排命令或脚本( cron jobs)在后台自动运行,而无需用户手动干预。可以基于时间(分钟、小时、日期、月份、星期几)来安排。编辑 crontab 文件,可以安排各种命令在特定时间执行。Cron 可提高系统的自动化程度和管理效率。

weixin_70208651的博客 8307

EDA开源仿真工具verilator入门4:访问函数介绍

访问函数(Visitor Function)是verilator算法实现的主要工作方式之一,本节将介绍一下访问函数。

fangfanglovezhou的博客 1076

Unity3d SECTR 2019 从零开始了解(零)

插件刚下载下来,虽然从Demo里面看了下大致效果,但尝试使用的时候茫无头绪,因此决定一边读文档一边写下笔记。这个笔记会从最基本的名词概述开始一步一步到用法。 除非特别注明,所有内容都不是机翻,而是理解后自己翻译的。 翻译内容: 【零】API REFERENCE MANUAL第一章Documentation Core Concept 【一】 名词概述 CORE CORE是SECTR的核心,一个快速将 Sectors 和 Portals 加入到Unity中的工具,以及完整的源代码,可以构筑独特的功能。 VI

狗蛋在土里瑟瑟发抖 1502

linux-系统定时任务cron

1、cron介绍 1.1、什么是cron? cron是linux系统中以后台进程模式周期性地执行命令或指定程序任务地服务软件。默认安装完linux系统之后,cron服务软件便会启动,服务对应的进程名字为crond。corn服务会定期(默认每分钟检查一次)检查系统中是否有需要执行的任务工作计划。 cron工具对应的crontab命令依赖于crond服务。 1.2、为什么要使用corn定时任务 要不断地对数据进行备份,但是很多时候变天系统业务繁忙,因此数据备份工作只能放到晚上执行,例如:网站数据库数据及

qq_46722017的博客 106万+

Verilog仿真时读取bin文件模拟输入数据流,将输出数据流写入bin文件

需要关注的是,一般会省略文件起始地址和读取长度,那么mem为多大,就会从文件中读取多大的数据出来填充mem。如果只需要读取一次文件,那么代码到此就结束了,但是如果还需要每一帧都读取该文件转换为数据流,则在循环里判断新的一帧信号是否到来,在新的一帧再次打开一次文件,从头开始读取数据。

qq_41137205的博客 2773

Linux中cron的用法,Linux中cron命令的用法详解

linux中有一个命令可以定期来执行系统任务。这就是crond服务。下面介绍下crontab命令的用法。linux任务调度的工作主要分为以下两类:编辑/etc/crontab 文件配置croncron服务每分钟不仅要读一次 /var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用 crontab配置是针对某个用户的,而...

weixin_35029653的博客 105万+

星链V3的2048条波束与1Tbps:多波束相控阵的工程代价

低轨卫星通信的容量提升,核心在于多波束相控阵天线的空间复用能力。相控阵通过控制大量天线单元的相位,可在同一阵面同时形成多条独立指向的波束,从而在有限频谱内成倍提升系统容量。星链V3宣称的2048条波束与1 Tbps汇聚吞吐量,正是基于这一原理:更多波束意味着更高的频率复用系数和更灵活的资源调度。但工程实现并非免费午餐,数字背后是供电、散热、重量、发射成本及运维复杂度的急剧攀升。从用户侧看,更精细的波束也带来切换频繁、低仰角衰减等新挑战。本文从多波束相控阵的基础原理出发,拆解波束形成、频谱复用和动态调度的工程

weixin_33462167的博客 348

ROS入门教程(七)—— Gazebo与RViz联合仿真

通过Gazebo与RViz联合仿真实现机器人运动。

吾门的博客 1万+

定时任务crontab cron.d

一、cron.d增加定时任务当我们要增加全局性的计划任务时,一种方式是直接修改/etc/crontab。但是,一般不建议这样做,/etc/cron.d目录就是为了解决这种问题而创建的。例如,增加一项定时的备份任务,我们可以这样处理:在/etc/cron.d目录下新建文件backup.sh,内容如下: # m h dom mon dow user command *...

weixin_34186931的博客 744

B.3【智能标注】:基于Labelstudio的UIE半监督深度学习的智能标注方案(云端版),提效。

Label Studio 所提供的 Machine Learning Backend 提供了一个比较灵活的辅助人工标注的框架,我们通过它确实可以加快 nlp 数据的标注Label Studio 的 enterprise 版本提供了 Active Learning 的流程,不过从其描述看这个流程并不完美,尤其是 fit 部分,由于 Label Studio 低估了「Train」所花费的时间,所以每次标注都自动训练的流程可能并不会那么顺滑(会在链接时候等待一段时间)

丨汀、的博客 1840

终极指南:使用cron实现npx skills命令自动化执行

npx skills是开源agent技能生态系统的包管理器,通过简单的命令即可扩展agent能力。本文将详细介绍如何利用cron等工具实现npx skills命令的定时自动执行,让技能管理流程更加高效便捷。 ## 为什么需要自动化npx skills命令? 在日常开发和运维工作中,我们经常需要定期执行npx skills相关命令,例如: - 定期检查技能更新:`npx skills check

gitblog_00456的博客 887

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

cron 定时执行详解

linux cron 下的定时执行工具使用技巧 来源:互联网 作者:佚名 时间:04-13 11:18:03 【大 中 小】 点评:cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务

haowizard的专栏 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

linux cron定时执行,cron Linux下的定时执行工具

说明:测试平台 Ubuntu 16.04.4 LTScron是一个Linux下的定时执行工具,可以在无需人工干预的情况下运行作业。所以,在Linux中,周期性执行的任务一般由cron这个守护进程来处理。cron会读取一个或多个配置文件,这些配置文件中包含了命令行命令及其执行的时间。cron的配置文件成为“crontab”,是“cron table”的简写。crontab命令用于列出、编辑、删除、...

weixin_28684757的博客 885

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Linux下的cron定时执行任务命令详解

博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导): Linux下的crontab定时执行任务命令详解 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写。 一、cron服务 ...

Willian的博客屋 4252

linux定时执行工具,cron Linux下的定时执行工具

说明:测试平台 Ubuntu 16.04.4 LTScron是一个Linux下的定时执行工具,可以在无需人工干预的情况下运行作业。所以,在Linux中,周期性执行的任务一般由cron这个守护进程来处理。cron会读取一个或多个配置文件,这些配置文件中包含了命令行命令及其执行的时间。cron的配置文件成为“crontab”,是“cron table”的简写。crontab命令用于列出、编辑、删除、...

weixin_36316574的博客 532

cron 工具 每分钟_Cron定时执行工具详解

Cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:/sbin/service crond start //启动服务/sbin/service crond stop //关闭服务/sbin/service crond restart //重启服务/sbin/service crond...

weixin_39524048的博客 2289

linux cron实例,cron,linux定时实施工具详解及实例

cron,linux定时执行工具详解及实例cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:/sbin/service crond start //启动服务/sbin/service crond stop //关闭服务/sbin/service crond restart //重启...

weixin_39585070的博客 172

Linux CentOS7定时执行Shell脚本-cron服务

Linux的定时执行任务是cron服务实现的。 crontab是一个命令,该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。 而crond正是它的守护进程。cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务。 写一个要定期执行的shell脚本 配置cron服务,实现定期执行任务 例如: 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每月

qq_40712111的博客 5483

Linux下的crontab定时执行任务命令详解

4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令。除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。在crontab文件中如何输入需要执行的命令和时间。

且听风吟 2270

Ubuntu cron定时执行任务知识

cron,是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业。        1. 关于crontab        在Ubuntu server 9.10下,cron是被默认安装并启动的。通过/etc/crontab文件,可以看到以下内容:        ---------------------------------------------------------

magic的专栏 912

在Linux上定时执行脚本

4. 编辑 ​crontab​文件:在打开的 ​crontab​编辑器中,按照设置语法在文件的最后一行添加定时执行任务的规则和要执行的命令。5. 保存并退出 ​crontab​编辑器:完成编辑后,保存并退出编辑器。​文件中所有的定时任务。请注意,执行此命令后将无法恢复已删除的定时任务,因此请谨慎操作。​命令,确保你真的想要删除所有定时任务。​文件注释掉相应的任务或者设置任务的时间规则为不执行即可。编写脚本:首先,你需要编写需要定时执行的脚本文件,比如。​定时任务列表,即删除当前用户的。

hay23455的博客 3272
上一篇: linux_shell笔记(九)
下一篇: linux_shell笔记(十)
terry_linux
博客等级 码龄17年 12粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值