Linux命令(17)---crontab

Linux命令·crontab crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程 阅读详情

crontab命令

crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件。而crontab命令是用户用来设置定时规则的命令。通过crontab可以在固定的间隔时间执行指定的系统指令或script脚本。

用法:

crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]

  • -e编辑用户的crontab
  • -l查看用户的crontab
  • -r删除用户的crontab

crontab [-e | -l]实际上就是操作/var/spool/cron/当前用户 这样的文件。
通过crontab查看或编辑的定时任务规则默认放到/var/spool/cron/用户名文件 中。
这里写图片描述

定时任务文件

文件说明
/etc/cron.deny该文件中所列用户不允许使用crontab命令
/etc/cron.allow该文件中所列用户允许使用crontab命令,优先于/etc/cron.deny
/var/spool/cron/所有用户crontab配置文件默认都存放在此目录,文件名以用户名命名

两种使用方式:

在root下操作

[root@ianLinux ~]# crontab -u Ian -l
no crontab for Ian
[root@ianLinux ~]# crontab -u Ian -e
no crontab for Ian - using an empty one

#####
~ 
...
"/tmp/crontab.vEWEjl" 1L, 6C written
crontab: installing new crontab
[root@ianLinux ~]# crontab -u Ian -l
#####
[root@ianLinux ~]# cat /var/spool/cron/Ian
#####     

也可以切换到Ian下进行操作:

[Ian@ianLinux ~]$ crontab -l
#####
[Ian@ianLinux ~]$ crontab -e

#####
#####
~                                                                                
~  
"/tmp/crontab.36iJyx" 2L, 12C written
crontab: installing new crontab 
[Ian@ianLinux ~]$ crontab -l
#####
#####

但此时有个问题:
这里写图片描述
既然/var/spool/cron/Ian文件的属主是root,Ian是没有读写执行权限的。
这里写图片描述
那么/var/spool/cron/Ian是如何被修改的呢?
这里写图片描述
rws注意’s’,所以我们发现crontab有特权。

执行定时任务时crontab命令的使用格式

用户的定时任务规则一般分为6个段,空格来分隔。
系统的定时任务为/etc/crontab,分为7段,空格来分隔。
前五段为时间的设定段,第六段为所要执行的命令或脚本任务段。

用户定时任务格式举例:
01 * * * * cmd
cmd为要执行的命令或脚本。每列之间必须要有一个空格。

cat /etc/crontab这是系统的定时任务格式。系统的和用户的前五个段是一样的。
这里写图片描述
分时日月周。

crontab语法格式中时间段的含义:

段含义取值范围
第一段分钟00-59
第二段小时00-23
第三段日01-31
第四段月份01-12
第五段周几0-7(0和7都是星期日)

crontab语法格式中特殊符号的含义:

符号含义
*表示任意时间,即“每”。00 23 * * * cmd 表示每月每周每日的23:00都执行cmd任务。
-表示一个时间范围。00 17-19 * * * cmd 表示每月每周每日的17,18,19点整点执行cmd任务。
,表示分隔时段。30 17,18,19 * * * cmd 表示每天17、18、19点30执行cmd任务。
/nn表示数字,即每隔n单位时间。*/10 * * * * cmd表示每隔10分钟执行cmd任务。

实例:
①30 3,12 * * * /bin/sh /scripts/test.sh,此定时任务的意思是每天凌晨3:30和中午12:30执行/scripts/test.sh脚本。

②30 */6 * * * /bin/sh /scripts/test.sh,此时定时任务的意思每天每隔6个半小时执行/scripts/test.sh脚本。

③30 8-18/2 * * * /bin/sh /scripts/test.sh,此定时任务的意思是每天的上午8点到下午18点之间每隔2个半小时,执行/scripts/test.sh脚本。

④45 4 1,10,22 * * /application/apache/bin/apachectl graceful,此定时任务的意思是每个月的1、10、22日的凌晨4:45分重启apache。

⑤* 23,00-07/1 * * * /application/apache/bin/apachectl graceful

这个例子不表示晚上23点和上午0-7点之间每隔一小时重启apache。
它表示每分钟都执行任务,即晚上23点和上午0-7点之间每隔一小时的每分钟都重启apache。

定时任务的使用实例

例1:每分钟打印一次自己的名字全拼到“/data/log/自己的名字命名的文件”。
这里写图片描述

这里写图片描述

注意:
1、定时任务要加注释
2、结尾不要有>/dev/null 2>&1
3、/data/log目录必须要存在才能有结果
4、定时任务中的路径一定要是绝对路径
5、crond服务必须开启运行

例2:每周六、日上午9:00和下午14:00执行/data/scripts/Ian.sh。
要求:/data/scripts/Ian.sh脚本的功能是打印当天的日期格式为2016-09-12。

[root@ianLinux data]# mkdir /data/scripts/ 
[root@ianLinux data]# echo 'date +%F' >/data/scripts/Ian.sh

因为Ian.sh没有执行权限所以不能执行。
这里写图片描述

所以执行定时任务时,如果是执行脚本,在脚本前面带上/bin/sh命名,否则有可能因为忘了为脚本设定执行权限,从而无法完成任务。

[root@ianLinux data]# /bin/sh /data/scripts/Ian.sh
2016-09-12

这里写图片描述

书写定时任务的核心要领

1. 加必要注释

加了注释,就知道定时任务运行的是什么作业,以防以后作业混乱。

2. 执行shell脚本任务前加/bin/sh
/bin/sh /data/scripts/Ian.sh

执行定时任务时,如果是执行脚本,在脚本前面带上/bin/sh命名,否则有可能因为忘了为脚本设定执行权限,从而无法完成任务。

3. 定时任务命令或脚本结尾加>/dev/null 2>&1
00 09,14 * * 6,0 /bin/sh /data/scripts/Ian.sh >/dev/null 2>&1

定时任务每执行一次都会给管理员发邮件,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者。
如果邮件服务没开,就会把邮件放到邮件队列里去,实际就是放到/var/spool/clientmqueue邮件临时队列目录里去(CentOS6.X是/var/spool/postfix/maildrop)。如果定时任务规范结尾不加 >/dev/null 2>&1,定时任务每执行一次,就往里面填一个小文件,这就会很容易导致inode被用完。
这里写图片描述

4.定时任务命令或程序最好写到脚本里执行
[root@ianLinux data]# echo 'date +%F' >/data/scripts/Ian.sh
[root@ianLinux data]# cat /data/scripts/Ian.sh 
date +%F
...
[root@ianLinux data]# crontab -l|tail -2
##cron job at 20160912 by Ian for...
00 09,14 * * 6,0 /bin/sh /data/scripts/Ian.sh >/dev/null 2>&1
5. 在指定用户下执行相关的定时任务

需要root权限执行的任务可以登录到root用户下设置,如果不需要root权限可以登录到普通用户下。
这里要特别注意不同用户的环境变量问题,如果是调用了系统环境变量/etc/profile,最好在程序脚本中将用到的环境变量重新export下。

6. 生产任务程序不要随意打印输出信息

在调试好脚本程序后,应尽量把DEBUG及命令输出的内容信息屏蔽掉,如果确实需要输出日志,可定向到日志文件里,避免产生系统垃圾。

7. 定时任务执行的脚本要规范路径

00 09,14 * * 6,0 /bin/sh /data/scripts/Ian.sh >/dev/null 2>&1

8. 配置定时任务规范操作过程
  • 首先在命令行操作成功,然后复制成的命令到脚本里,在各个细小环节减少出错的机会。
  • 然后测试脚本,测试成功后,复制脚本的规范路径到定时任务配置里。
  • 先在测试环境下测试,然后正式环境规范部署。
Python爬虫实战:避开巨潮资讯网反爬,稳定获取上市公司年报PDF下载地址 本文详细介绍了如何使用Python和Selenium突破巨潮资讯网的动态加载限制,稳定获取上市公司年报PDF下载地址。通过模拟真实用户操作、智能等待策略和反反爬虫技巧,帮助开发者高效爬取财经数据,适用于股票代码查询和年报分析等场景。 阅读详情

相关推荐

新手避坑指南:用COMSOL Multiphysics仿真气体放电(汤逊vs.流注)

本文详细介绍了使用COMSOL Multiphysics仿真气体放电的实战指南,涵盖汤逊理论和流注模型的实现方法。通过对比两种放电模型的关键参数和物理场配置,帮助新手避免常见错误,准确预测气体击穿过程。文章还提供了工程应用案例,如高压绝缘子设计优化,展示了仿真技术在电力设备绝缘设计中的实际价值。

weixin_28716181的博客 472

Linux 定时重启 crontab 日志报CMDOUT (/bin/sh: shutdown: 未找到命令)

shutdown写完整路径: # crontab -e 30 8 * * * /sbin/shutdown -r 0

allway2的博客 2531

SECS/GSM 测试工具 SecsExpress 的配置与实战应用

本文详细介绍了半导体设备通讯测试工具SecsExpress的配置与实战应用。作为专业的SECS/GSM协议调试工具,它能模拟Host与设备端进行双向测试,帮助工程师快速部署、验证通讯链路,并高效排查与RMS系统或真实设备间的联调问题,是提升半导体工厂设备集成与维护效率的利器。

yhn456789的博客 298

crontab定时任务输出产生大量邮件耗尽文件系统inode问题处理

在某台Linux系统中运行命令,按tab键补充输出时,提示“无法为立即文档创建临时文件:设备上没有空间”信息,如下所示: 检查文件系统的空间使用情况,输出正常: 检查文件系统的inode数量使用情况,根分区的inode已经全部耗尽: 使用命令“ls -lR /var |grep “^-”|wc -l”查看根目录下各个目录的文件数量,发现/var目录有大量的文件。 进一步检查,确认/var/spool/postfix/maildrop目录下有大量的小文件。 "mailq"命令显示有大量的root用户待发

jetliu05的博客 1701

碳纳米管NRAM:突破5纳米制程的下一代存储技术

在半导体存储领域,非易失性存储器和随机存取存储器是两大基础技术方向。传统DRAM速度快但断电易失,NAND Flash非易失但写入慢、寿命有限,两者在先进制程下都面临物理极限挑战。碳纳米管作为一种新型纳米材料,凭借其优异的导电性、机械强度和尺寸微缩潜力,为存储技术革新提供了物理基础。基于碳纳米管的NRAM技术,通过控制纳米管间的可逆接触实现电阻状态切换,兼具DRAM级速度和Flash的非易失性,同时具备近乎无限的擦写寿命和出色的CMOS工艺兼容性。这项技术不仅能满足5纳米以下制程的存储需求,在数据中心缓存、

weixin_42576804的博客 427

基于JAVA的GB28181实现之SIP服务核心组件解析

本文深入解析了基于JAVA的GB28181标准中SIP服务的核心组件实现,包括协议栈选择、消息处理引擎、事务管理器等关键技术点。通过实战案例分享海康威视、大华设备的特殊处理技巧,并提供性能优化和常见问题排查指南,帮助开发者高效构建稳定的视频监控系统。

weixin_30892037的博客 264

linux crontab任务出错,CROND出错导致/var/spool/postfix/maildrop/堆积

前一段时间遇到的系统故障,以下是操作过程:大晚上收到该服务器内存超高告警,ps aux发现有大量的/usr/sbin/sendmail进程,一开始将其kill掉:ps -ax | grep sendmail | awk '{print $1}' | wc –l 统计了以下有1230个ps -ax | grep sendmail | awk '{print $1}' |xargs kill –9 杀...

weixin_33352924的博客 698

python实现边缘检测Canny算子 (附完整源码)

python实现边缘检测Canny算子 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 456

/var/spool/postfix/maildrop疯狂增长导致磁盘空间占满解决方案

修改crontab的MAILTO配置 [root@web /]# crontab -e #添加 MAILTO=""属性 停止邮件相关服务 [root@web /]# killall -9 sendmail sendmail: no process killed(没有叫sendmail的程序被杀死) [root@web /]# killall -9 postdrop postdrop: no process killed(没有叫postdrop的程序被杀死) 删除maildrop文件夹 [ro.

Williams山石的博客 1058

国家自然基金回避专家有必要填写吗?被回避专家能看到吗?

不填也能中填1–2个最保险只填1个最直接竞争者。✅一句话结论可以不填,但建议填1–2个被回避专家绝对看不到如果你愿意,我可以再告诉你一个很多人不知道的国家自然基金“评审分组规则”——它其实决定了你的项目最可能送到哪些专家手里,这对地区基金中标率影响很大。

qq_15963745的博客 155

Python散点图(Scatter Plot):高阶分析、散点图矩阵、三维散点图及综合应用

散点图作为一种直观且功能强大的数据可视化工具,在数据分析中具有广泛的应用。通过观察散点图中数据点的分布模式,我们可以轻松地判断变量之间是否存在相关性,以及相关性的类型和强度。同时,散点图也是识别数据集中异常值的有效工具,无论是通过直观观察还是结合统计方法,都能帮助我们发现数据中的异常情况。掌握散点图的绘制和分析技巧,将使我们在数据探索和决策制定中更加得心应手。

SiArch的博客 1444

crontab使用方法

一、crontab基本用法 1.1 cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。 service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载入配置 service crond status //查看服务状态 1.2 Crontab存放路径 /var/spool/c...

chris 4万+

SAP-MM-供应商对账平台(功能集合)

(1)集成OA审批,线上核销,结果写入SAP; (2)集成SRM,线上与供应商对账确认,写入SAP; (3)集成财务付款结果确认写入,OA回传结果,定时同步SRM供应商平台。 欢迎留言交流,功能完善,如需要页面设计,请订阅专栏

qq_32198063的博客 748

Linux Crontab 定时任务 命令详解

一.Crontab介绍 crontab命令的功能是在一定的时间间隔调度一些命令的执行。 1.1 /etc/crontab文件 在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。 如: [root@dave ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/b...

数据库天地 88

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

linux命令之crontab详解

crontab命令 被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

全栈行动派的博客 2万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Linux crontab 命令

一. Crontab 介绍 1、crontab命令的功能是在一定的时间间隔调度一些命令的执行,Linux的crond定时任务是周期性执行任务的守护进程,类似于Windows下的计划任务,会周期性的检查任务并执行,配合shell的使用,极大的便利了系统维护。 crontab命令是cron table的简写,它是cron的配置文件,也可以称为作业列表,我们可以在以下文件夹内找到相关配置文件。 /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名..

花语无痕的博客 3389

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Linux中Crontab命令详解

Crontab 是 Linux 中用于设置和管理定时任务的工具,能够自动化执行重复性任务,如备份、状态检查等。每个用户都有自己的 crontab 文件,系统级别的任务则存放在 /etc/crontab 或 /etc/cron.d/ 目录下。crontab 文件的基本结构包括时间字段(分钟、小时、日期、月份、星期)和要执行的命令。特殊字符如 *、,、-、/ 提供了更灵活的时间设置。常用命令包括 crontab -e(编辑)、crontab -l(列出)、crontab -r(删除)。使用 crontab 时需

weixin_54939228的博客 1947

【Linux】Linux命令:crontab

时程表中的程序在你所指定的时间执行后,系统会发一封邮件给当前的用户,显示该程序执行的内容,若是你不希望收到这样的邮件,请在每一行空一格之后加上。时程表中的脚本无法定时执行,但是在shell会话中可以正常执行。这个问题的主要原因是无法读取环境变量的原因。用户的时程表是用于记录着要定期执行的程序。命令用于对用户的时程表进行查看、删除、修改等操作。就是一个条件,这5个条件要同时满足,程序才会执行。中添加环境变量,在可执行命令之前添加命令。服务会定期执行时程表里的程序。都是用来设定程序的执行周期的,一个。

yanzhyan的博客 1581

Linux下crontab命令的用法

Technorati 标签: Linux,crontab Linux下crontab命令的用法   2007年5月21日 任务调度的crond常驻命令 crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类:

百事乐 4万+

Linux Crontab命令详解

一.  Crontab 介绍   crontab命令的功能是在一定的时间间隔调度一些命令的执行。 1.1 /etc/crontab 文件 在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。 如: [root@dave ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/b

ykblog.github.io 2366

【Linux】crontab命令详解

00. 目录 文章目录00. 目录01. crond简介02. crond服务03. crontab命令详解04. 示例演示05. 注意事项 01. crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的...

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 1113

Linux crontab命令详解

crontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本 -->相当于闹钟 日志文件: ll /var/log/cron* 编辑文件: vim /etc/crontab 进程:ps -ef | grep crond ==> /etc/init.d/crond restart 作用:定时备份,实时备份 1.常见命令参数 usage: crontab [-u user] file crontab [-u user] [ -e | -l | -r ]

qq_38766930的博客 2636

Linux crontab命令小结

在linux系列中,常常通过crontab命令来维护crontab文件,从而达到提交计划作业的目的。在介绍crontab命令之前,我们先来了解下crontab文件中每个条目中各个域的格式和意义。 crontab每个条目都有6个域,分别对应6列,从左到右依次为第1列,第2列...第6列。下面是这些域的详细介绍: 第1列:分钟 1~59 第2列:小时 1~23 第3列:日期 1~31

心灵净土 1万+

【linux】crontab命令使用

root用户的任务调度操作可以通过“crontab –uroot –e”来设置,也可以将调度任务直接写入/etc/crontab文件,需要注意的是,如果要定义一个定时重启系统的任务,就必须将任务放到/etc/crontab文件,即使在root用户下创建一个定时重启系统的任务也是无效的。总结:crontab执行shell时,只能识别为数不多的环境变量,普通的环境变量是无法识别的,所以在编写shell时,最好使用export重新声明变量,确保脚本执行。,在crontab里是不会执行的,应该换成。

sodaloveer的博客 2188

linux crontab命令

linux crontab命令

qq_30420709的博客 1573

linux crontab echo. 输出,Linux命令下crontab命令

crontab是一个用来设置、删除或显示供守护进程cron执行的定时任务的命令。每一个用户都可以拥有属于自己的定时任务,定时任务文件默认以用户名命名,并放在/var/spool/cron目录,该目录普通用户无访问权限。可以通过cron.allow 和 cron.deny文件管理用户使用crontab的权限。如果cron.allow存在,用户必须列在其中才会被允许使用cron;如果cron.deny...

weixin_39795268的博客 2861
上一篇: Linux命令(16)---chgrp、chown
下一篇: Linux下的定时任务
_IanXiao
博客等级 码龄12年 84粉丝 241原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值