linux内置的cron进程能帮我们实现这些需求,cron搭配shell脚本,非常复杂的指令也没有问题。

cron介绍

我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。

  • /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
  • /etc/crontab 这个文件负责调度各种管理和维护任务。
  • /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
  • 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

crontab的使用

crontab [-u username]    //省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作表)

我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。保存退出后,即可生效,默认crontab会每分钟检查一次任务文件的。

crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有

  • * 取值范围内的所有数字
  • / 每过多少个数字
  • - 从X到Z
  • 散列数字

日志

  • 在 /var/log/cron 中可以查看执行日志
tail -1000f /var/log/cron
  • 在crontab中的任务指定日志
* * * * * /home/mppay/auto-truncate-log.sh >> /home/mppay/auto-truncate-log.log

特别注意

crond的任务计划, 有并不会调用用户设置的环境变量,它有自己的环境变量,当你用到一些命令时,比如mysqldump等需要环境变量的命令,手工执行脚本时是正常的,但用crond执行的时候就会不行,这时你要么写完整的绝对路径,要么将环境变量添加到 /etc/crontab 中。另外,ceontab中不方便执行语句繁多的任务,常用推荐是写成shell脚本或python脚本进行执行。

实例

实例1:每1分钟执行一次myCommand

* * * * * myCommand

实例2:每小时的第3和第15分钟执行

, * * * * myCommand

实例3:在上午8点到11点的第3和第15分钟执行

, - * * * myCommand

实例4:每隔两天的上午8点到11点的第3和第15分钟执行

, - */  *  * myCommand

实例5:每周一上午8点到11点的第3和第15分钟执行

, - * *  myCommand

实例6:每晚的21:30重启smb

  * * * /etc/init.d/smb restart

实例7:每月1、10、22日的4 : 45重启smb

  ,, * * /etc/init.d/smb restart

实例8:每周六、周日的1 : 10重启smb

  * * , /etc/init.d/smb restart

实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb

, - * * * /etc/init.d/smb restart

实例10:每星期六的晚上11 : 00 pm重启smb

  * *  /etc/init.d/smb restart

实例11:每一小时重启smb

* */ * * * /etc/init.d/smb restart

实例12:晚上11点到早上7点之间,每隔一小时重启smb

* -/ * * * /etc/init.d/smb restart

实例13:每天凌晨0点执行curator

  */ * * curator --config /opt/elasticsearch-curator/config.yml /opt/elasticsearch-curator/action_all.yml
												

Linux——定时任务crontab的更多相关文章

  1. 如何让linux定时任务crontab按秒执行

    如何让linux定时任务crontab按秒执行? linux定时任务crontab最小执行时间单位为分钟如果想以秒为单位执行,应该如何设置呢?思路 正常情况是在crontab中直接定义要执行的任务,现 ...

  2. linux定时任务crontab的设置

    linux定时任务crontab的设置http://www.blogjava.net/freeman1984/archive/2010/09/23/332715.html vi /etc/cronta ...

  3. 【转帖】Linux定时任务Crontab命令详解

    Linux定时任务Crontab命令详解 https://www.cnblogs.com/intval/p/5763929.html 知道有crontab 以及 at 命令 改天仔细学习一下 讲sys ...

  4. Linux定时任务Crontab命令详解_转

    转自:Linux定时任务Crontab命令详解 (部分修改) linux 定时系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服 ...

  5. linux定时任务crontab怎样执行root命令

    在/var/spool/cron/文件夹下放置了所有定时任务文件, 1.运行crontab -u $用户名 -e会显示$用户的所有定时任务: 2.运行sudo crontab -e会显示root用户所 ...

  6. Linux 定时任务 Crontab命令 详解

    前言 crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比 ...

  7. linux定时任务crontab

    今天在执行mysql定时任务语句时候问了很多大拿,都建议我不要随便在生产环境下写定时任务这样的语句,有的说会有延时,那样的话就不准了,有的说在.系统时间和本地时间不一致怎么办?后来就建议我用linux ...

  8. Linux定时任务Crontab使用 提示no crontab for root

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

  9. 小记---------关于linux 定时任务crontab

    linux的crontab定时任务    启动服务: service crond start    关闭服务:  service crond stop    重启服务:  service crond ...

  10. Linux 定时任务Crontab的使用

    1.准备好Java程序,导出为Jar文件 如myProject.jar 2.写Shell脚本 startTask.sh echo 'start...' cd  /home/root/yourFolde ...

随机推荐

  1. Entity Framework 在MySQL中执行SQL语句,关于参数问题

    在Entity Framework中添加MySQL模型,在写代码的过程中需要直接执行SQL语句. 在SQL语句中用到了@curRank := 0 这样在SQL语句中定义参数,同时还会有传入参数:ai. ...

  2. python模拟双色球大乐透生成算法

    每天练习一段python代码,健康生活一辈子.晚上下班没事,打开电脑继续编写python代码!今天分享的一个是大家熟悉的双色球彩票的游戏,根据这个进行写的一个python算法,代码精简,肯定有bug, ...

  3. HDU 2454 Degree Sequence of Graph G——可简单图化&&Heavel定理

    题意 给你一个度序列,问能否构成一个简单图. 分析 对于可图化,只要满足度数之和是偶数,即满足握手定理. 对于可简单图化,就是Heavel定理了. Heavel定理:把度序列排成不增序,即 $deg[ ...

  4. Codeforces Round #413 (Div1 + Div. 2) C. Fountains(树状数组维护最大值)

    题目链接:https://codeforces.com/problemset/problem/799/C 题意:有 c 块硬币和 d 块钻石,每种喷泉消耗硬币或钻石中的一种,每个喷泉有一个美丽值,问建 ...

  5. SQL数据库调优

    1.使用With As做数据库递归,调优树形表结构 例如:设计表结构简化如:ID.ParentID.Name:这里的ParentID就是这个表本身的某个ID WITH cte AS ( UNION A ...

  6. Linux 下Mongdb数据库

    一.安装mongdb 1.创建安装目录 # mkdir /data/local # mkdir /data/local/mongodbdata 2.解压安装包 # tar -xvf /software ...

  7. (2)打鸡儿教你Vue.js

    var obj = {} Object.defineProperty(obj, 'msg', { // 设置 obj.msg = "1" 时set方法会被系统调用 参数分别是设置后 ...

  8. PHP全栈学习笔记26

    php 验证码 <?php /* *@Author: 达叔小生 **/ header("Content-type:image/png"); // 发送头部信息,生成png图片 ...

  9. Matlab学习——求解微分方程(组)

    介绍: 1.在 Matlab 中,用大写字母 D 表示导数,Dy 表示 y 关于自变量的一阶导数,D2y 表示 y 关于自变量的二阶导数,依此类推.函数 dsolve 用来解决常微分方程(组)的求解问 ...

  10. oop 编程是什么?

    面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构.OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成.