Linux课程笔记 Crond介绍
1. 定时任务比较及cron语法
Linux的任务调度可以分为两类:
|
Linux系统下另外两种定时任务软件:
at:适合仅执行一次的调度任务,需要启动一个名为atd的服务 anacron:这个命令主要用于非7*24小时开机的服务器,anacron并不能指定具体时间执行任务,而是以天为周期或者在系统每次开机后需要执行的任务,它会检测停机期间应该进行,但是并没有进行的crontab任务工作,执行一遍。 这两种比较少用 |
指令语法:
Crontab [-u user] file Crontab [-u user] {-l |-r |-e} |
指令说明:
通过crontab我们可以在固定的间隔时间执行指定的系统指令或shell脚本,时间间隔可以是分钟、小时、日、月、周及以上的任意组合(日和周不要组合)。 |
2. 使用者权限文件
文件 |
说明 |
/etc/cron.deny |
该文件所列用户不允许使用crontab命令 |
/etc/cron.allow |
该文件所列用户允许使用crontab命令 |
/var/spool/cron |
所有用户crontab文件存放的目录,以用户名命名 |
3. 指令选项说明含义表
参数名称 |
含义 |
指定示例 |
-l(字母) |
显示用户crontab文件内容, |
crontab -l |
-e |
进入vi编辑用户crontab文件 |
crontab -e |
-i |
删除用户crontab文件前确认提示 |
crontab -i |
-r |
从crontab目录中删除用户crontab文件 |
crontab -r |
-u user |
指定使用者 |
crontab –u qinbf –l |
4. 指令的使用格式
默认情况下,用户所见建立的crontab文件存放于/var/spool/cron文件中,其crontab对应的文件名与用户名一致。
格式共分为七段,前五段为时间设定段,第六段以哪个用户执行crontab(默认是当前用户),第七段为所要执行的命令段。
5. Crontab时间段的含义如表:
段 |
含义 |
取值范围 |
第一段 |
分钟 |
00-59 |
第二段 |
小时 |
00-23 |
第三段 |
日期 |
01-31 |
第四段 |
月份 |
01-12 |
第五段 |
星期几 |
0-6 |
6. 特殊符号含义如下:
特殊符号 |
含义 |
* |
表示任意时间都 |
- |
减号,表示分隔符,表示一个时间范围段 |
, |
逗号,表示分隔时间段的意思 |
/n |
n代表数字,“即每隔n单位时间” |
7. crontab依赖的服务:
chkconfig --list |grep crond /etc/init.d/crond status |
8. crontab实例说明
1) 30 3,12 * * * /bin/sh /scripts/oldboy.sh 2) 30 */6 * * * /bin/sh /scripts/oldboy.sh #--à第二列*/6表示每6个小时,也相当于6,12,18,24 3)30 8-18/2 * * * /bin/sh /scripts/oldboy.sh #-à第二列8-18/2代表早晨8点到下午18点之间每2小时,也相当于8,10,12,14,16,18 4)* 23-7/1 * * * /application/apachectl restart #----à实际上的效果是,晚上到早上的7点,每小时的每一分钟都重启apache,如果是想达到每小时才重启的话,前面的分钟段,可以设置为0或者30之类的 5)服务器时间同步:系统每5分钟同步一次时间 [root@test2 ~]# crontab -l */5 * * * * /sbin/ntpdate time.windows.com >/dev/dull 2&>1 |
9. crontab命令生产环境专业写法
例1:每一分钟打印一次自己的名字到/server/log/自己的名字命令的文件中。 答案: #print char task by oldboy for programmer A at 2010-12-12 */1 * * * * echo “oldboy” >>/server/log/oldboy.log 2>&1 例2:每周六、日上午9:00和下午14:00来老男孩linux运维实战培训中心学习(/server/script/oldboy.sh) 答案: #cron job for ett by oldboy 2010-12-12 00 09,14 * * 6,0 /bin/sh /server/script/oldboy.sh >/dev/null 2>&1 针对以上两生产例子说明: 1写定时任务要写清注释是个好习惯,比如什么人,什么时间,因为谁,做了什么事 2执行任务时可以省略用户,在执行脚本时,尽量带上/bin/sh,否则有可能因为脚本没有执行权限而无法执行 3需要root权限执行的任务可以登录到root用户下然后设置,如果不需要root权限,可以登录到普通用户下,然后设置,这里要注意不同用户的环境变量问题。 4定时任务命令的结尾最好加上>/dev/null 2>&1等内容,如果需要打印日志,可以追加到指定日志,不推荐留这种不专业的做法 如果定时任务不加>/dev/null 2>&1等命令设置,时间长了,可能会导致邮件临时目录/var/spool/clientmqueue文件数猛增,占用大量磁盘空间inode节点。 5在开发定时任务程序或脚本时,在调试好脚本程序后,应尽量把DEBUG及屏幕输出的内容命令去掉,如果还需要,可定向到日志里。 |
10. crontab生产解决案例
案例1:No space left on device故障1
在设置crontab时,提示No space left on device。用df –k检查还有空间,用df –i显示/var已占用100%,如果inode耗尽,则系统上下将不能创建文件。
在/var/spool/clientmqueue/下有超多的文件ls半天没反应,用rm -fr *会自动跳出root,然后用xargs来配合解决。cd /var/spool/clientmqueue&& ls |xargs rm –f
最后清理了该目录的内容。当然,如果文件数超多,执行ls |xargs rm –f也会长时间无反应,此时也可以直接cd /var/spool/&&rm –rf clientmqueue,然后mkdir clientmqueque && chmod 770 clientmqueue &&chown smmsp,smmsp -R /var/spool/clientmqueue。
原因分析:系统中,cron执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就会产生这些文件。
解决办法:开启邮件服务,并将crontab里面的命令后面加上>/dev/null 2>&1,在做定时脚本时,把屏幕输出定向到日志中。
案例2:No space left on device故障2
(1) when you create a new directory of file,system will say :No space left on device
[ett@linux /var]#mkdir ett Mkdir:cannot create directory ett’:No space left on device |
(2) when create crontab for account ett,you will receive error information as follows;
Crotab:installing new crontab Cron/tmp.6655:No space left on device Crontab:edits left in /tmp/crontab.6655 |
解决过程 1检查分区使用率,df -h 2检查/var/lock下的文件,删除/var/lock/subsys/nfx,touch /var/ett,成功创建文件,删除/var/ett 3发现删除/var/lock下的任意一个文件后,都可以成功创建一个文件,再创建就会失败。 4将检查扩大到/var/下的其他目录 5怀疑分区/var/de inode用尽导致上述问题,检查inode使用率 6分区/var/没有配置quota 7发现/var/spool/clientmqueue下面有太多的文件,由于系统的邮件服务配置有问题,导致系统发出的邮件堆积在队列目录中,占用大量的inode节点。 处理方法:确认/var/spool/clientmqueue下的文件已经无用,删除之,如果文件数量太大,无法使用rm -f * 直接删除,可以选择ls |xargs rm -f 或者直接删除上级目录,然后重建该目录,并赋予正确的属主和权限。 最好的解决办法是重新设置系统邮件,使其能正常发送或找到发邮件的源头,如本文的crontab任务。 结论:分区/var/的 inode全部用尽,free inode为0,导致无法创建新的文件或目录,以后遇到类似的问题要注意用df -li检查inode的使用情况。 |
11. 生产场景如何调试crontab定时任务
|
12. 定时任务生产问题8条箴言
|
13. 定时清理垃圾文件
crontab -l |tail -2 #del clientmqueue files by oldboy at 2010-09-26 00 00 * * 0 /bin/bash /server/scripts/del_sys_file.sh > /dev/null 2>&1 cat /server/scripts/del_sys_file.sh find /var/spool/clientmqueue/ -type f | xargs rm -f |
14. crond章节重点
1) 用户使用crontab -e自定义定时任务项目,分为六段,[分、时、日、月、周、指令]。
2) 系统的/etc/crontab定时任务项目分为7段,[分、时、日、月、周、用户、指令]。
3) crontab定时任务的5个生产基本要领和7点调试技巧,尤其是学会看服务日志来调试
4) 生产环境使用crontab定时任务要注意的8点箴言
5) 重视生产的案例及通过案例为载体来学习巩固技术知识
转载于:https://www.cnblogs.com/fengze/p/6752488.html
Linux课程笔记 Crond介绍相关推荐
- Linux课程笔记 硬盘介绍及硬盘分区
一.硬盘的基础知识 1. 硬盘的结构 1.1硬盘介绍 硬盘主要包括:盘片.磁头.主轴马达.控制电机.磁头控制器.数据转换器.接口.缓存等几个部分. 当今(2012年),互联网行业服务器领域(dell, ...
- 2021韩顺平一周学会Linux 课程笔记
2022/10/1~2022/10/8 确实有些匆忙,课程的一些定制篇跳过了.下面是随之记录的内容,分享一下. Linux目录结构 linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是 ...
- 对Linux课程内容的建议,Linux课程笔记 Day01 课程内容总结(示例代码)
系统安装: 引导项简单介绍:在"boot:"提示后: 直接回车(Enter)--图形界面安装模式 linux text--字符界面安装模式 linux askmethod--提示用 ...
- 3月11日Linux课程笔记
一.yum的使用 二.单用户模式 三.救援模式 四.运行级别 五.Linux启动过程 pass.扩展知识 DHCLIENT 会启动一个dhcp服务 只限于做实验用 route -n ...
- Linux课程笔记 Day09 课上内容总结 MySql,Php的安装及Apache,Nginx,Php的优化
一 MySql 1.1 如何选择MySql的版本 1.2 MySql单实例安装 (1) 建立mysql用户 首先以root身份登陆到linux系统,然后执行如下命令创建mysql ...
- EDA实验课课程笔记(一)——linux操作系统及linux下的基本指令
EDA实验课课程笔记(一)--linux操作系统及linux下的基本指令 实验目标 1,了解Linux系统的基本特点 2,掌握Linux的常用命令 3,掌握Linux的命令输入技巧 实验内容 1,基本 ...
- Linux学习笔记 文件服务Vsftp详细介绍
Linux学习笔记 文件服务Vsftp详细介绍 知识点: 1.FTP使用TCP连接和TCP端口 2.在进行通信时,FTP需要建立两个TCP连接: 一个用于控制信息,TCP端口号缺省为21 一个用于数据 ...
- EDA实验课课程笔记(五)——NC-verilog的介绍与使用(一)
EDA实验课课程笔记(五)--NC-verilog的介绍与使用(一) NC简介 NC内部文件结构 NC-verilog的两种启动方式 图形界面方式演示视频 简介:简单介绍NC及其精要的总结,防止以后忘 ...
- EDA实验课课程笔记(六)——NC-verilog的介绍与使用(二)
EDA实验课课程笔记(六)--NC-verilog的介绍与使用(二) 图形界面的基本步骤回顾 命令行界面多步仿真 0,准备文件的建立 首先是新建cds.lib文件 其次是hdl.var文件的建立 1, ...
最新文章
- docker 容器环境 检测方法
- 【深度学习】卷积神经网络速成
- 学习webpack(二)
- http staus汇总
- Windows下UltraEdit查看Objective-C代码高亮工具
- E. The Child and Binary Tree(生成函数 + 多项式)
- python编程可以做什么菜_Python 编程! 我是菜菜菜鸟 大家帮帮忙
- python网络爬虫 爬取新闻标题、时间、内容
- requestmapping注解作用_Java高级架构师-Spring 注解编程之注解属性别名与覆盖
- 2016 Bird Cup ICPC7th@ahstu--“波导杯”安徽科技学院第七届程序设计大赛
- java semaphore 原理_Java并发编程原理与实战二十八:信号量Semaphore
- 啤酒游戏及其牛鞭效应的vensim模拟
- 江苏省考计算机类包括哪些专业,2019年江苏省公务员考试计算机类包括哪些专业..._公务员考试_帮考网...
- 艾司博讯:拼多多全店推广是什么意思?
- 自定义NavigationBar的思路
- CTO谈豆瓣网和校内网技术架构变迁
- Android的主线程与子线程
- pytorch搭建Resnet50实现狗狗120个品种类的分类
- 小白也能看懂的XML简介
- 市面上有哪几种门_卧室门怎么选?市面上5种常见房门大揭秘
热门文章
- 里bl2和bl3为什么分开_英国的水池为什么有两个水龙头?为什么英国有独立的冷热水龙头?...
- 7 win 卸载node_node怎么卸载?Windows卸载node方法
- mysql的表导出er关系图_使用Navicat生成ER关系图并导出的方法
- php jquery ajax登录,jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
- android项目编码规范,Android 项目规范
- NYOJ 2 括号配对问题
- C学习杂记(三)笔试题:字符串大小写字母切换
- leetcode 42. 接雨水 思考分析(暴力、动态规划、双指针、单调栈)
- 用Kotlin开发您的第一个应用程序| Android与Kotlin
- math.trunc_JavaScript中带有示例的Math.trunc()方法