Windows(Win 10)

compmgmt.msc[Win+R] > 任务计划程序 > 任务计划程序库 > 创建基本任务

Linux(Ubuntu)

定时任务种类

实现linux定时任务主要可以通过cron、anacron、at三种,而使用最多的是cron任务。

CRON定时任务软件

概念

  1. [词义]cron一词来源于希腊语chronos(χρόνος),原意特指:时间。
  2. [功能]常见于Unix和类Unix的操作系统之中,通常被内置于操作系统中。用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活,crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
  3. [Shell服务]cron服务提供cron、crontab命令(crontab,即 cron table之缩写)来设定cron服务。
  4. [推荐:绝对路径]脚本中推荐使用绝对路径,无论是shell脚本还是python脚本,里面所有的路径最好都是绝对路径!!!形如:echo "hello world" >> /root/jack/cron/sh-log.txt
  5. [辨析]cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表

cron安装与使用

  • 安装与查看
shell> sudo apt-get install cron #安装,Ubuntu等Linux系统默认会按照cron服务
shell> sudo service cron status # 查看cron状态
  • 创建定时任务
cmd shell> crontab -e
edited file> # minute hour day-of-month month day-of-week commands
edited file> */1 * * * * echo "Have a break now." >> /tmp/test.txt # 每隔1分钟,执行bash shell命令"echo "Have a break now." >> /tmp/test.txt"
edited file> 3,15 * * * * command # 每小时的第3和第15分钟执行command
edited file> 3,15 8-11 * * * command # 在每天上午8点到11点的第3和第15分钟执行command
edited file> 6,10 * 2 * * # 每个月2号,每小时的6分和10分执行一次任务
edited file> */3,*/5 * * * * # 每隔3分钟或5分钟执行一次任务,比如10:03,10:05,10:06
  • 启动/重启
shell> sudo service cron start # 启动
shell> sudo /etc/init.d/cron start # 启动
shell> sudo service cron restart # 重启
shell> sudo /etc/init.d/cron restart # 重启
  • 重新载入配置
shell> sudo service cron reload
  • 关闭
shell> sudo service cron stop
  • crontab命令

    • -u //设定某用户的cron服务,一般root用户在执行这个命令的时候需要此参数
    • -l //显示某用户cron服务的配置信息 
    • -r //删除某用户的cron服务
    • -e //编辑某用户的cron服务的配置信息
    • -ir //删除 crontab 文件前提醒用户
crontab -u root -l  ## 用户(root)查看自己的cron服务配置信息

crontab任务配置基本格式

crontab中的每一行代表一个定期执行的任务,分为6个部分。前5个部分表示何时执行命令,最后一个部分表示执行的shell命令。

edited file> # minute hour day-of-month month day-of-week commands
edited file> * *  *  *  *  command

其各项字段对应的合法值:00-59 00-23 01-31 01-12 0-6 (0 is sunday)

附加说明:操作符号
+ 逗号(',')分开的值,例如:“1,3,4,7,8”。表示任意值,比如:在小时部分填写 * 代表任意小时(每小时)
+ 连词符('-')指定值的范围,例如:“1-6”,意思等同于“1,2,3,4,5,6”。可以允许在一个部分中填写多个值,比如:在分钟部分填写 1,3 表示一分钟或三分钟
+ 星号('*')代表任何可能的值。形如,在“小时域”里的星号等于是“每一个小时”,等等。一般配合 * 使用,代表每隔多长时间,比如:在小时部分填写 */2 代表每隔两分钟。所以 */1 和 * 没有区别 */2 可以看成是能被2整除的任意值。

参考文献

Linux/Window之定时任务脚本编写的更多相关文章

  1. Shell编程——脚本编写思路与过程

    Linux系统Shell编程——脚本编写思路与过程 “ 前段时间有小伙伴问我一些问题,涉及到shell脚本的编写问题,事后,我深入思考了下,实际生产环境的确也会经常用到,因此如何写这个脚本?它的思路在 ...

  2. Linux 脚本编写基础

    txt去重    http://man.linuxde.net/sort Linux 脚本编写基础 http://www.cnblogs.com/linn/archive/2007/03/05/664 ...

  3. linux 脚本编写基础(一)

    1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在 ...

  4. Linux 用脚本编写搭建yum本地仓库

    Linux 用脚本编写搭建yum本地仓库 源码如下: #!/bin/bash #该脚本用于自动化搭建本地yum仓库 #挂载光盘 #作者:雨中落叶 #博客:https://www.cnblogs.com ...

  5. windows下的java项目打jar分别编写在windows与linux下运行的脚本( 本人亲测可用!)

    前言: 最近公司做了一个工具,要将这个工具打包成一个可运行的程序,编写start.bat和start.sh在windows和linux下都可以运行. 在网上找了很多资料,最后终于找到一个可靠的资料,记 ...

  6. Linux 脚本编写

    第一个shell脚本编写 #!/bin/bash # 上面中的 #! 是一种约定标记, 它可以告诉系统这个脚本需要什么样的解释器来执行; #定义变量: APP_BASE_PATH="/opt ...

  7. Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)

    I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量                env:环境变量 常用系统变量: path pwd lang home his ...

  8. linux base脚本编写-自动领取微信红包

    bash脚本编写 语法 变量 定义: your_name = "ABC" 使用: echo $your_name 只读变量 a = "123" readonly ...

  9. 【转】Linux之crontab定时任务命令

    1.  crontab命令概念 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使 ...

随机推荐

  1. maven-3.5.3通过eclipse打包问题(1)

    1.maven版本:3.5.3 2.ide: Eclipse Oxygen.2 (4.7.2)(Version: 3.9.2.RELEASE) 3. 配置ide 错误原因: 解决方法以及运行结果:

  2. [已解决]python FileNotFoundError: [WinError 3] for getsize(filepath)

    问题代码: def sourceStatic(path, exclude): # exclude list convert to lower exclude = list(map(lambda x:x ...

  3. 【vue】使用vue+element搭建项目,Tree树形控件使用

    1.依赖安装 本例中,使用render-content进行树节点内容的自定义,因此需要支持JSX语法.(见参考资料第3个) 在Git bash中运行一下指令 cnpm install\ babel-p ...

  4. 【css】一行或者多行文字垂直水平居中

    1.方法一:使用css3弹性盒子(兼容IE10及以上浏览器,firefox,chrome,safari 5.1.7不支持) <!DOCTYPE html> <html> < ...

  5. C++ 精英化趋势

    精英化趋势 C++ 是一门引起无数争议的语言.眼下最常听到的声音则是 C++ 将趋于没落,会被某某语言取代.我很怀疑这种论调的起点是商业宣传,C++ 的真实趋势应该是越来越倾向于精英化. 精英化是指在 ...

  6. properJavaRDP 跑通本地远程桌面

    参考:https://www.cnblogs.com/jfqiu/p/3192364.html 包下载:https://mega.nz/#!HnIX0ajA!lcovIdmYWWJJVRngMsQFK ...

  7. python中可变与不可变类型变量中一些较难理解的地方

    当函数内部引用一个全局变量时,如果此全局变量为可变类型,那么函数内部是可以改变此全局变量的值,用不用globale申明全局变量都一样.但是如果想给此变量重新赋值则必须要使用global. l = [] ...

  8. mysql-笔记-控制语句/string方法

    1 case case value when [compare_value] then result [when[compare_value] then result....] [else resul ...

  9. Golang 介绍与安装

    1.介绍与安装 Golang 是什么 Go 亦称为 Golang(按照 Rob Pike 说法,语言叫做 Go,Golang 只是官方网站的网址),是由谷歌开发的一个开源的编译型的静态语言. Gola ...

  10. LOJ2276 [HAOI2017] 新型城市化 【二分图匹配】【tarjan】

    题目分析: 这题出的好! 首先问题肯定是二分图的最大独立集,如果删去某条匹配边之后独立集是否会变大. 跑出最大流之后流满的边就是匹配边. 如果一个匹配边的两个端点在一个强连通分量里,那这条边删掉之后我 ...