Linux:crond(crontab)定时任务
一、、定义
Crond 是linux系统中用来定期执行命令或指定程序任务的一种服务或者软件。一般在安装完系统时,crond会默认存在。
crond默认每分钟会检查系统中是否有需要执行的定时任务。如果有,则会根据实现定义好的 规则执行这个定时任务
秒级任务:crond实现不了,,一般自己写shell守护进程
二、为什么需要定时任务
定时任务可以帮我们实现自动备份。
window定时任务:
开始-附件-系统工具-任务计划程序-创建基本任务
linux定时任务:分为两种,
1、系统自身定期执行的任务 /etc/cron

2、用户执行的定时任务
三、定时任务分类
1)at 适合执行一次就结束的定时任务。一般不怎么用,依赖服务atd
2)anacron 适合非7*24h开机的服务器准备。一般以天为周期,或每次开机后执行的。检测停机期间没有执行的任务,在开机后一次性执行一遍。
3)crond 默认每分钟检查是否有要执行的任务,有的话执行。crond是一个定时任务的守护进程。crontab时一个命令,是用户来设置定时任务规则的
四、常用命令
crontab -l 查看crontab内容(内容在 /var/spool/cron/root 文件中,其中root是用户的名字。) 该命令=======cat /var/spool/cron/root
crontab -e 编辑crontab内容,且可以帮助检查语法。如果语法有错会无法保存。该命令=======vi /var/spool/cron/root ,vi不会检查语法
crontab -i 删除crontab内容,删除前会确认提示(用的很少)
crontab -r 删除crontab内容
crontab -u user 指定使用的用户执行任务
五、定时任务指令的使用格式
用户的定时任务分为6段,每段之间用空格分开,前5段为时间的设定段。第6段为所要执行的命令或脚本任务。系统的定时任务分为8段
时间段的格式:
01 * * * * cmd 命令
02 * * * * /bin/sh xx.sh 脚本文件
第一列:分钟,minnite 数值在0-59,如果*,表示每分
第二列:小时,hour 数值在0-23,如果*,表示每小时
第三列:日,day 数值1-31,如果*,表示每日
第四列:月,month 数字1-12,如果*,表示每月
第五列:星期 day of week 数字0-7(sunday=0或者7)
语法中的符号:
* 表示任意时间都。假设00 23 * * * cmd 表示每天23点00做cmd任务。日月周都用*代替
- 表示一个时间范围,假设00 17-19 * * * cmd 表示每天的17-19点整点做cmd任务,也就是17,18,19点做
, 分割时间段,假设30 17,18,19 * * * cmd,表示每天的17点30,18点30,19点30,执行cmd任务
/n 每隔n单位, n表示数字。假设 */10 * * * * cmd表示每隔10min执行一次cmd
/etc/init.d/crond stats 查看crond服务状态
实例:
创建一个定时任务,每分钟向一个文件中增加内容
1、编辑定时任务,crontab -e 写定时任务命令 * * * * * echo zy >> /server/log/zy.log 每分钟向zy.log文件输入zy
2、保存
3、查看定时任务 crontab -l
4、tail -f /server/log/zy 实时监控,看是否实行了定时任务
脚本文件以.sh结尾。执行脚本文件 sh xxx.sh
创建要给定时任务,放到sh文件中,执行。
crontab -e ,或者操作/var/spool/cron/root
echo "00 09,14 * * 6,7 /bin/sh /server/scripts/zy.sh" >> /var/spool/cron/root >/dev/null 2>&1
定时任务结尾要加上 >/dev/null 2>&1 等价于1>/dev/null 2>/dev/null ,意思就是把所有输出都追加到/dev/null中。
2>&1就是把标准错误重定向到标准输出(>&)
1> 正确的结果追加进后面的文件
2> 错误的结果追加进后面的文件
echo aaa 1>a.log 2>b.log 结果,会发现aaa追加进入了a.log中,因为前面echo aaa没有错误,正确,所以追加到1>a.log中
ech aaa 1>a.log 2>b.log 结果,会发现aaa追加进入了b.log中,因为前面ech aaa有错误
如果不加 >/dev/null 2>&1 邮件服务/var/spool/clientmqueue/ 文件数会过多,导致inode被耗尽。当定时任务被执行时,会给系统发邮件,系统默认的时sendmail服务经常是关闭的,所以定时任务发送的邮件就会临时堆在/var/spool/clientmqueue/.时间久了,文件数就会很多。
当过多时,可以进入目录中,删除 ls | xargs rm -rf
rpm -qa | grep sendmail 查看是否安装了这个邮件服务。然后看 var/spool/是否有这个clientmqueue 目录。如果都没有,那执行定时任务的时候也就不会发邮件,不会出现满的现象
如果sendmail服务启动,/etc/init.d/sendmail start ,则就会把/clientmqueue/目录下的文件发送出去,可以查看下,就没有了
六、给指定用户创建定时任务
crontab -u zy -e 创建定时任务。成功后,会再/var/spool/cron/下生成一个zy文件,可查看定时任务
七、系统定时任务
/var/log/messages
/var/log/secure
/var/log/maillog
/var/log/spooler
/var/log/boot.log
/var/log/cron
八、环境变量导致定时任务失败
定时任务脚本中,如果有系统或者用户环境变量,会不识别。需要重新定义,或者加载下放环境变量的文件
九、定时任务的log在/var/log/cron可看
Linux:crond(crontab)定时任务的更多相关文章
- linux的crontab定时任务命令
linux的crontab定时任务命令 cron是一个linux下的定时执行工具. 启动.停止.重启.重新载入配置/sbin/service crond start|stop|restart|relo ...
- linux ( crontab 定时任务命令)
linux ( crontab 定时任务命令) crontab 定时任务命令 linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工 ...
- Linux下Crontab定时任务的使用教程 以及 无法执行定时任务的解决方案
前言 本文学习思路:Linux的corntab定时任务的使用教程 --> 定时任务无效的解决方案 Linux的corntab定时任务的使用教程 1. 首先,输入命令 打开crontab定时 ...
- Linux之crontab定时任务
****crontab简介**** 简而言之呢,crontab就是一个自定义定时器. ****crontab配置文件**** 其一:/var/spool/cron/ 该目录下存放的是每个用户(包括ro ...
- Linux crond任务调度(定时任务),Linux磁盘分区/挂载
一.crond任务调度 1.基本语法 crontab [选项] -e : 编辑 crontab定时任务 -l : 查询crontab -r : 删除当前用户所有的crontab任务 例子: 每分钟执行 ...
- linux,crontab定时任务中为脚本指定使用参数,crontab的脚本中是否可以带参数
需求描述: 今天在写脚本的时候,脚本的运行需要给出几个参数,那么就考虑 在crontab写定时任务的时候,是否也是能够在脚本中,增加参数呢, 因为以前没有这么用过,所以呢,就进行一次测试. 测试过程: ...
- 【转】Linux之crontab定时任务命令
1. crontab命令概念 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使 ...
- 【Linux】crontab定时任务用用法
cron是unix或者linux下用来定时任务的命令,大致的用法如下: 1.服务的启动和关闭 /sbin/service crond start //启动服务 /sbin/service cron ...
- 【Linux】crontab 定时任务
7月份,公司海外运营国发生数据库联接未释放,造成连接池连接不足的情况, 当时查询并没有及时解决问题, 为了避免现场同事多次人工重启系统的,因此写了个shell脚本,通过crontab 实现系统重启,但 ...
- linux添加crontab定时任务
1.crontab -e命令进入linux定时任务编辑界面,举个简单的例子,比如我要定时往txt文件写入 */ * * * * .txt */1就是每隔一分钟像文件写入,其他一些详细的操作大家可以去网 ...
随机推荐
- 剑指Offer顺时针打印矩阵
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...
- JavaScript 循环数组的时候调用方法中包含Promise的时候如何做到串行
forEach是不能阻塞的, 默认[并行]方式 const list = [1, 2, 3] const square = num => { return new Promise((resolv ...
- JavaScript 数组中根据某个属性值的中文进行排序
普通排序 const arr = [] arr.sort((x, y) => x.prop - y.prop) 中文属性值排序 const arr = [] arr.sort((x, y) =& ...
- CODING DevOps 代码质量实战系列最后一课,周四发车
随着 ToB(企业服务)的兴起和 ToC(消费互联网)产品进入成熟期,线上故障带来的损失越来越大,代码质量越来越重要,而「质量内建」正是 DevOps 核心理念之一. <DevOps 代码质量实 ...
- 记好这 24 个 ES6 方法,用来解决实际开发的 JS 问题
本文主要介绍 24 中 es6 方法,这些方法都挺实用的,本本请记好,时不时翻出来看看. 1.如何隐藏所有指定的元素 const hide = (el) => Array.from(el).fo ...
- 串口线接Linux设备U盘安装系统和直接安装设备接显示屏2种方式不同
Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x22 (or lat ...
- three.js UV映射简述
今天郭先生来说一说uv映射,什么是uv映射?uv映射就是将二维的贴图映射到对象的一个面(或者多个面)上.说到这个问题,我们就不得不了解一下Geometry的点.面和uv的结构.我们以BoxGeomet ...
- JAVA HTML 以压缩包下载多文件
Html: 利用form表单来发送下载请求 <form id ="submitForm" method="post"> </form> ...
- Golang中使用set
两种 go 实现 set 的思路, 分别是 map 和 bitset. map 的 key 肯定是唯一的,而这恰好与 set 的特性一致,天然保证 set 中成员的唯一性.而且通过 map 实现 se ...
- 第7篇scrum冲刺(5.27)
一.站立会议 1.照片 2.工作安排 成员 昨天已完成的工作 今天的工作安排 困难 陈芝敏 学习云开发,云函数调用以及数据的前后端传递 今天实现云词库搭建,随机获取并显示,对云开发有更深的认识 ...