原标题:Crontab 知多少

习惯在linux下工作的同学,可能经常会用 crontab 来布置定时任务。今天来和大家一起了解下 crontab 的相关使用方法。

我们经常会遇到,手动执行一个脚本一切正常,添加到 crontab 里却不能执行了。其实这类问题大多是由环境变量导致的,问题出在 crontab 的配置文件里。

使用命令打开配置文件:cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# For details see man 4 crontabs

# Example of job definition:

# .---------------- 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

# | | | | |

# * * * * * user-name command to be executed

crontab 默认的 path 是

/sbin:/bin:/usr/sbin:/usr/bin,不在该path路径下的脚本就会执行出错。所以我们在添加 crontab的时候,要尽可能的使用绝对路径(完整的全路径)。另外还可以在crontab编辑里引入环境变量 . /etc/profile ; xxxxx(crontab任务)。

此外很多人喜欢用 crontab -e 命令来编辑,多用户下,可能容易误删别人的任务。此时可以把任务配置放到/etc/cron.d 目录下。内容如下图所示:

MAILTO=""

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

* * * * * root sh /root/monitor_network.sh

上图的监控脚本是每隔1分钟执行一次,设想一种情况,如果1分钟内该任务没有执行完,那就会出现同时运行 2 个任务的情况,随着时间的积累,运行数可能会慢慢增加,耗费大量系统资源,那么如何避免这种情况呢?

1.程序层次

可以在脚本里加入下面的代码

num=`ps -ef|grep $0|grep -v 'grep'|grep -v $$|wc -l`

if [ $num -gt 0 ];then

exit

fi

2.使用linux的flock锁机制

MAILTO=""

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

* * * * * root flock -xn /tmp/monitor_network.lock sh /root/monitor_network.sh

3.如果有异常导致,程序无法自行终止时,可考虑使用 timeout命令

MAILTO=""

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

* * * * * root timeout -s 9 30 sh /root/monitor_network.sh

结束语:

如果不小心删除了crontab 任务,且没有记录的话。可以通过最近的 /var/log/cron 日志来恢复已经执行过的 crontab 。返回搜狐,查看更多

责任编辑:

linux crontab mailto,Crontab 知多少相关推荐

  1. Linux命令之crontab命令

    Linux命令之crontab命令 前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面 ...

  2. 【Linux】定时任务crontab和at命令详解

    [Linux]定时任务crontab和at命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的 ...

  3. linux定时任务no crontab for root 解答

    使用命令查询crontab 任务时,一直提示:no crontab for root .查看了一些资料,说是crontab在初始时,设置了一次编辑方式,所以试了一下crontab -e的方式编辑,即在 ...

  4. linux 创建crontab文件位置,[基础教程]linux系统的crontab计划任务添加和删除

    在linux系统中,有时候为了节省人力,所以将一些脚本进行定时执行,通过crontab计划任务进行启动和停止,这样能方便大部分时间来做其他事情,下面主要介绍一下如何启动和删除crontab计划任务 添 ...

  5. 【Linux基础】crontab定时命令详解

    周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间. cron的配置文件称为"cron ...

  6. Linux定时任务:crontab安装与检查

    文章目录 Linux定时任务:crontab安装与检查 一. 如何检查:Linux服务器是否安装 crontab? 1.1. 已经安装 · 检测如下图所示: 1.2. 没有安装,如何安装? 二.查看c ...

  7. Linux查看:crontab开启状态

    文章目录 Linux查看crontab开启状态 xshell命令如下: 返回结果 · 放大图: 上述命令不能用,就用下面的命令:具体看报错内容: `新的命令如下:` Linux查看crontab开启状 ...

  8. 检查linux的crontab服务,crontab任务调度健康检测

    系统环境: SUSE Linux Enterprise Server 10 SP1 (x86_64) 问题背景: 由于线上系统环境下的crontab内容比较多,在进行日常crontab任务调度时,经常 ...

  9. Linux系统上Crontab定时执行教程

    Linux系统上Crontab定时执行教程 常用格式示例 每五分钟执行  */5 * * * * 每小时执行     0 * * * * 每天执行        0 0 * * * 每周执行      ...

最新文章

  1. 简明Linux命令行笔记:dmesg
  2. CodeSmith实用技巧(十五):使用快捷键
  3. Hibernate5笔记7--Hibernate缓存机制
  4. 《梦断代码》读后感一
  5. Docker问题记录
  6. gsoap写一个c++ webservice
  7. 解决win10系统中截图异常放大的问题
  8. 分布式内存数据库---Redis的持久化
  9. GitHub宣布GitHub Education 新计划,学校可免费用企业版
  10. centos php安装redis扩展,Centos7编译安装redis、php安装phpredis扩展
  11. python装饰器 property_介绍Python的@property装饰器的用法
  12. Machine Learning、Date Mining、IRNLP 会议期刊论文推荐
  13. python中函数的返回值_python--函数的返回值、函数的参数
  14. scratch少儿趣味编程之让小猫原地转圈
  15. ckplayer 解决flash全屏遮住了div元素,重写全屏/退出全屏方法
  16. vin码车架号查询易语言代码
  17. Proteus:logic contentions detected on net B15
  18. 福州IT企业之金庸群侠传
  19. 最后一公里极速配送(三)
  20. python 中文转带音调的拼音

热门文章

  1. Numpy_v2_数组运算
  2. Comcast 力推 RDK
  3. ext4 ntfs mysql_文件系统类型FAT16、FAT32、NTFS、EXT3、EXT4、XFS说明和对比
  4. 2020福建计算机软考,【2020年福建高级软考信息系统项目管理师考试时间】- 考...
  5. 美狐美颜SDK最常用功能代码解析
  6. 工作两年想换工作:是否要去考研?
  7. python打开谷歌浏览器新标签页_【Python】爬虫系列 | 3、谷歌浏览器的基本使用...
  8. cero3.0曲面合并后阵列注意事项
  9. C语言企业发放奖金根据利润提成问题解答
  10. 关于新劳动法-违约金试用期