linux入门之任务计划crontab

crontab介绍

我们时常会有一些定期定时的任务,如周期性的清理一下/tmp,周期性的去备份一次数据库,周期性的分析日志等等。而且有时候因为某些因素的限制,执行该任务的时间会很尴尬。本文同你一起掀开Linux系统自动任务的神秘面纱。

1、基本概念

  • crontab自动任务的理解
  • 用于设置周期性被执行的指令
  • 该命令读取指令存放于crontab文件中供后续读取和执行
  • crond为其守护进程,一般在后台默默运行,不间断的检查是否有预定的作业需要执行。
  • crontab命令的格式和参数
  • 分 时 日 月 星期 <命令> <日志>


    crontab格式和参数.png

2、环境的准备

实验楼的linux系统,默认是没有启动日志和cron守护进程,需要手动启动

  • 启动日志的命令
  • 启动crontab
  • 操作截图如下


    启动日志和crontab
    启动日志和crontab

** crontab 新增任务**

  • 使用vi编辑器进行编辑,输入i切到编辑模式
![新增任务计划](https://dn-simplecloud.qbox.me/1790261468638619229-wm)

> *  查看结果
 - 没有生成文件?日志报错“no mta installed discarding output”
 ```sudo tail -f  /var/log/syslog 
报错日志
报错日志
  • 查找原因,发现 书写格式有误 ,需在date之后加个空格。
*/1 * * * * touch /home/shiyanlou/$(date  +\%Y\%m\%d\%H\%M\%S) 
已生成20160716142101文件
已生成20160716142101文件

crontab使用

一个是linux系统,是存在多个用户的,那么每个用户建立的crontab是否会有冲突呢?当然不会冲突,要是冲突,就没有安全性和可靠性而言了。那么具体是怎么做到的呢?

1、配置文件的独立性

  • 不同用户,在/var/spool/cron/crontabs里存在一个对应的配置文件
  • 保证了 隔离、独立、有效
  • 如下图,存在 root和shiyanlou 两个用户的crontab


    crontab独立性
    crontab独立性

2、守护进程cron自动执行

  • 在etc目录下存在如下cron文件,这几个文件会让你的任务计划安装计划正确执行
  • 1、 /etc/cron.daily,目录下的脚本会每天让执行一次,在每天的6点25分时运行;
  • 2、 /etc/cron.hourly,目录下的脚本会每个小时让执行一次,在每小时的17分钟时运行;
  • 3、/etc/cron.mouthly,目录下的脚本会每月让执行一次,在每月1号的6点52分时运行;
  • 4、 /etc/cron.weekly,目录下的脚本会每周让执行一次,在每周第七天的6点47分时运行;
  • 如下图所示


    etc下cron文件
    etc下cron文件

crontab进阶

设定crontab之后,系统管理员最关心的是crontab任务有没有按照计划执行完毕,执行过程中有没有出错?那么我们可以通过查看日志文件来了解请情况。

1、crontab系统日志

  • 默认的系统日志 存在于 /var/log/syslog 文件里
  • 自定义启用cron日志 通过编辑 /etc/rsyslog.d/50-default.conf配置文件,达到启用cron.log专用日志,详见下图


    系统日志
    系统日志

2、crontab执行日志

  • 在crontab命令里,可以自定义执行日志的路径和名称【分 时 日 月 星期 <执行的命令> <执行的日志>】,如下两个实例:
(1) * 8 * * 0  /home/shiyanlou/mybin/back.sh 1>>/home/shiyanlou/back.log 2>>/home/shiyanlou/back.log
 (2) * 8 * * 0 /home/shiyanlou/mybin/back.sh >>/home/shiyanlou/back.log 2>&1
  • (1)和(2)是两种不同的写法,但是含义是一样的
  • 其中,“2>&1” 表示 2跟1使用同一个日志文件
  • 其中, 1 表示执行的标准日志输出 ;2表示 执行异常的日志输出

作业

撰写一个crontab任务计划,使其完成在“每周日的上午8点自动执行一次备份脚本 back.sh”

  • back.sh 是对该目录/home/shiyanlou/Code下的blog目录文件进行压缩打包;
  • 结合上面设定的crontab自动任务,现补充 back.sh的脚本如下:


    备份脚本
    备份脚本

友情提示

我正在实验楼撸代码,你也快来!800+编程实战教程,无需搭环境,直接练习!用我的链接注册,你我都能获得3个实验豆!http://www.shiyanlou.com/register?inviter=NTY0MzE5MTkxNzAx


感谢您花费时间阅读这篇文章!!通过上述讲解是不是让您对linux的任务计划crontab有了进一步的了解了呢?是的话请给个赞吧!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,976评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,249评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,449评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,433评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,460评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,132评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,721评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,641评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,180评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,267评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,408评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,076评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,767评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,255评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,386评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,764评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,413评论 2 358

推荐阅读更多精彩内容

  • Linux定时任务Crontab命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的。...
    孙燕超阅读 1,824评论 0 4
  • Linux 系统提供了使用者控制计划任务的命令 :crontab 命令。 一、crond简介 crond是linu...
    happeace阅读 1,774评论 0 53
  • 一、实验介绍 1.1 实验内容 我们时常会有一些定期定时的任务,如周期性的清理一下/tmp,周期性的去备份一次数据...
    harrytc阅读 847评论 0 0
  • 前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (cro...
    Zcclucky阅读 578评论 0 0
  • 一、简介 crond是Linux下用来周期执行某种任务或等待处理某些事件的一个守护进程,当安装完成操作系统后,默认...
    人在码途阅读 1,023评论 0 3