导读 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux下的任务调度分为两类,系统任务调度和用户任务调度。系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。

crontab 配置文件
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# .—————- minute (0 – 59)
# | .————- hour (0 – 23)
# | | .———- day of month (1 – 31)
# | | | .——- month (1 – 12) OR jan,feb,mar,apr …
# | | | | .—- day of week (0 – 6) (Sunday=0 or 7) OR
#sun,mon,tue,wed,thu,fri,sat
# | | | | |
# m h dom mon dow command
# * * * * * command will be executed

例如:

*/5 * * * * root /usr/libexec/atrun

minute(m) : 代表一小时内的第几分,范围 0-59。
hour (h) : 代表一天中的第几小时,范围 0-23。
mday (dom) : 代表一个月中的第几天,范围 1-31。
month(mon) : 代表一年中第几个月,范围 1-12。
wday (dow) : 代表星期几,范围 0-7 (0及7都是星期天)。
who : 要使用什么身份执行该指令,当您使用 crontab -e 时,不必加此字段。
command(command):所要执行的指令。

crond 开机启动
crond 启动/关闭脚本
/etc/init.d/crond help
Usage: /etc/init.d/crond {start|stop|status|restart|condrestart|try-restart|reload|force-reload}
crond 加入到开机启动
chkconfig crond on

crontab定时任务不执行问题

crontab定时任务不执行问题

排查原因步骤如下:

首先,确认服务器是否开启定时任务计划服务,只有root用户才能对crond服务进行开启和关闭

[root@mimvp-bj script]# service crond status
crond is stopped
[root@mimvp-bj script]# service crond start
Starting crond: [ OK ]
[root@mimvp-bj script]# service crond status
crond (pid 24577) is running…

请确保crond状态为 is running…

如果crond状态为 crond is stopped ,则定时任务服务不会生效故无法执行,我遇到的crontab不执行就是这个原因

crontab 常见错误的几个问题

编辑 crontab :

crontab -e# m h dom mon dow command
SHELL=/bin/bash
30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh

Ctrl + O (写入)——》 Enter键(保存文件名)——》 Ctrl + X(退出)

输入查看命令:

crontab -l# m h dom mon dow command
SHELL=/bin/bash
30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh(推荐用此方式)
如果遇到shell语法错误
Syntax error: "(" unexpected

解决方法:

需指定shell解释器命令:SHELL=/bin/bash(请参见上面 crontab编辑示例 SHELL=/bin/bash)

或者参见: LINUX – BASH Syntax Error

如果遇到路径错误

在 /var/spool/crontab/yanggang 中,添加了如下命令,在日志文件 /var/spool/mail/yanggang 中提示找不到 xxx.sh 路径

30 * * * * /home/barry/top800/top10/top10_fruits/top10_all.sh

30 * * * * bash /home/barry/top800/top10/top10_fruits/top10_all.sh

这是因为你在crontab中使用了绝对路径执行脚本 top10_all.sh,因此在脚本 top10_all.sh 中引用的其它脚本也都需要使用绝对路径,才能被crontab找到并执行。

那么该如何避免绝对路径呢,推荐采用如下格式:

30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh(推荐用此方式)

先进入该目录,然后在执行脚本;否则,执行脚本中的其它脚本都需要加绝对路径

转载于:https://www.cnblogs.com/linux130/p/5872182.html

手把手教你crontab排障相关推荐

  1. mysql排插问题_手把手教你分析 MySQL 死锁问题

    原标题:手把手教你分析 MySQL 死锁问题 前言 前几天跟一位朋友分析了一个死锁问题,所以有了这篇图文详细的博文,哈哈~ 发生死锁了,如何排查和解决呢?本文将跟你一起探讨这个问题 准备好数据环境 模 ...

  2. html 插入 排班表,怎么用Word制作排班表,手把手教你学会

    原标题:怎么用Word制作排班表,手把手教你学会 在工作中,或者是在生活中,人们听到排班表的时候,一点也不会感觉惊讶,因为这是在工作中的需要,日常的工作都会有班次的安排,根据不同的情况给每个人安排不同 ...

  3. 手把手教你36小时搭建无人超市系统 !(附代码)

    来源:QbitAI 编译:夏乙 问耕 本文经AI新媒体量子位(公众号ID:qbitai )授权转载,转载请联系出处 本文共1635字,建议阅读5分钟. 本文手把手教大家用代码工具搭建亚马逊无人商店. ...

  4. 手把手教你EEG脑电数据预处理-操作篇

    目录 导入数据 对数据进行初步认识 电极定位 移除无用电极 重参考 重采样 滤波 分段和基线校正 插值坏导 ICA 剔除ICA成分 剔除坏段 目视检查法 保存数据 本分享为脑机学习者Rose整理发表于 ...

  5. 手把手教你玩转SOCKET模型:完成端口(Completion Port)详解

    这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会完成端口 ...

  6. 电脑组装笔记:手把手教你如何自己组装电脑

    电脑组装基本操作:手把手教你如何自己组装电脑 第一步:安装CPU 拆开所有包装后的第一步,先把CPU安装到主板的CPU插座上. 先要把插座上的保护盖翻开,然后再把CPU放入CPU插座. 然后把cpu轻 ...

  7. dump解析入门-用VS解析dump文件进行排障

    突然有一天部署在服务器的一个应用挂掉了,没办法只能进入服务器打开 [事件查看器]查看下,好不容易找到了打开后一脸懵逼 事件查看器查到的内容根本对我们排障没有任何作用. 在这个时候如果有对应的dump文 ...

  8. 手把手教你用Pandas读取所有主流数据存储

    导读:从常见的Excel和CSV到JSON及各种数据库,Pandas几乎支持市面上所有的主流数据存储形式. 作者:李庆辉 来源:大数据DT(ID:hzdashuju) Pandas提供了一组顶层的I/ ...

  9. 手把手教你用Python求均值、中值和众数

    导读:数据科学入门:集中趋势度量--均值.中值和众数. 作者:保罗·戴特尔(Paul Deitel).哈维·戴特尔(Harvey Deitel) 来源:大数据DT(ID:hzdashuju) 本文我们 ...

最新文章

  1. 【连载】优秀程序员的 45 个习惯之习惯33
  2. Oracle恢复删除的数据
  3. 结构体命名中的尾标ST是什么意思?(struct)
  4. Public DNS (公共域名解析服务)
  5. MATLAB2016添加工具箱toolbox方法,有截图
  6. python中异常处理的两种方式_Python 之异常处理
  7. c#不可忍受之慢——谁是罪魁祸首
  8. 数字图像处理 采样定理_数字图像处理实验合集
  9. 【Luogu2393】yyy loves Maths II(浮点输入输出)
  10. java编程显当前月示日历表_显示当前月的日历 1(java实现)
  11. 2022年电工(技师)特种作业证考试题库及在线模拟考试
  12. 产品读书《认知盈余》
  13. 服务器更换固态后如何安装系统,更换固态硬盘后安装操作系统的两种常用方法...
  14. Cesium for UE4 与 3DTiles
  15. Matlab--基于前馈补偿的PID控制算法及其仿真
  16. LANDESK操作系统部署时,怎么默认恢复到客户端C盘配置
  17. java实现处理无限层级树形结构
  18. 医疗his系统值不值得投入使用
  19. mybatis的parameterType可以不写(我一般都不写)
  20. Spring环绕通知

热门文章

  1. Mirantis决定采用Kubernetes作为 Openstack的生命周期管理工具
  2. Hdu2680 最短路
  3. flash 定义主舞台窗口大小
  4. Wireshark和TcpDump抓包分析心得
  5. 我父亲的新发明--玉米点播器
  6. .NET : 在定义项目模板的时候使用占位符
  7. 复杂多目录的Makefile模板及示例-转
  8. [HttpClient]HTTPClient PostMethod 中文乱码问题解决方案(2种)
  9. 4.1 选择IDC机房 4.2 硬件服务器选型 4.3 上架服务器 4.4/4.5 装系统
  10. Linux桌面版横评:五、Ubuntu 7.04