Linux任务计划,周期性任务执行

概述

本章将为大家介绍一些任务计划和周期性任务计划执行相关内容

任务计划的分类主要有由两种

未来的某时间点执行一次某任务:at,batch

周期性运行某任务:crontab

具体分为三个方面来说明:

1、at计划任务

2、cron计划任务

3、mail命令

4、计划任务作业及练习

第一章 at,batch计划任务

at是由atd服务提供的,在Centos6智商可以使用service atd start 来启动服务;在Centos7上要使用systemctl start atd.service来启动服务

at的使用方法:at[OPTION]...TIME

TIME:

HH:MM[YYYY-mm-dd]

noon,midnight,teatime

tomorrow

now+#

UNIT:minutes,hours,days,or weeks

at的作业

-l:at -l相当于atd命令,列出目前系统上面的所有当前用户的at队列;

-d:at -d相当于atrm命令,可以取消一个在at排程中的工作;

-v:可以使用较明显的时间格式列出at中的工作列表;

-f:把at要执行的所有任务放置于文件中,让at读取此文件作为要执行的任务;

如:at -f /PATH/TO/SOMEFILE TIME

-q QUEUE:指明队列;

-c:查看指定作业的具体内容;如下图

注意:作业执行结果是以邮件发送给提交作业的用户

batch命令:    batch会让系统自行选择在系统资源较空闲的时间去执行指定的任务;    (不用指定时间,所以这里就不多加说明)

第二章 周期性任务计划:cron

服务程序:

cronle:主程序包,提供了crond守护进程及相关辅助工具;

确保crond守护进程(daemon)处于运行状态

Centos6中可以使用service crond start来启动crond服务;

Centos7可以使用systemctl start crond.service来启动crond服务;

向crond提交作业的方式不同于at,它需要使用专用的配置文件,此文件有固定格式,不建议使用文本编辑器直接编辑此文件,要使用crontab命令;

cron任务有两类:系统cron和用户cron;

系统cron任务:主要用于实现系统自身的维护;

手动编辑:/etc/crontab文件

[root@localhost ~]# >>cat /etc/crontab

SHELL=/bin/bash   #使用的shell

PATH=/sbin:/bin:/usr/sbin:/usr/bin      #到哪些文件夹寻找我们使用的到的命令

MAILTO=root #运行之后邮件发送给root用户

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name  command to be executed

注意:

(1)每一行定义一个周期性任务;

*  *  *  *  *: 定义周期性时间

user-name:  运行任务的用户身份

command to be executed:要执行的任务

(2)此处的环境变量不同于用户登录后获得的系统变量,因此,建议命令使用绝对路径,或者自定义PATH环境变量;

(3)执行结果邮件发送给MAILTO指定的用户

用户cron任务:

命令:crontab命令

用户cron的配置格式:/var/spool/cron/USERNAME

SHELL=/bin/bash   #使用的shell

PATH=/sbin:/bin:/usr/sbin:/usr/bin      #到哪些文件夹寻找我们使用的到的命令

MAILTO=USERNAME #运行之后邮件发送给root用户

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * command to be executed

注意:

(1)每行定义一个cron任务,共6个字段

(2)此处的环境变量不同于用户登录后获得的系统变量,因此,建议命令使用绝对路径,或者自定义PATH环境变量;

(3)执行结果邮件发送给当前用户

时间表示法:

(1)特定值;

给定时间点有效取值范围内的值;

注意:day of week和day of month一般不同时使用;

(2)*

给定时间点上有效取值范围内的所有值;表"每..."

(3)离散取值:

在时间点上使用逗号分隔的多个值;

#,#,#

(4)连续取值:-

在时间点上使用-连接开头和结束

#-#

(5)在指定时间点上,定义步长;

/#: #即步长;

注意:

(1)指定的时间点不能被步长整除时,其意义将不复存在;

(2)最小时间单位为"分钟",想完成"秒"级任务,得需要额外借助与其他机制;

定义成每分钟任务:而在利用脚本实现在每分钟之内,循环执行多次;

示例:

(1)3 * * * *:每小时执行执行一次;每小时的第3分钟;

(2)3 4 * * 5:每周执行一次;每周五的4点3分;

(3)5 6 7 * *:每月执行一次;每月的7号的6点5分;

(4)7 8 9 10 *:每年执行一次;每年的10月9号8点7分

(5)9 8 * * 3,7:每周三和周日;每周三和周日的8点3分执行一次

(6)0 8,20 * * 3,7:每周三和周日的8点和20点执行一次

(7)0 9-18 * * 1-5:每周一到周五的9点到18点每小时执行一次

(8)*/5 * * * *:每5分钟执行一次任务;

(9)*/7

crontab命令:

crontab [-u user] [-l | -r | -e] [-i]

-e:编辑任务;

-l:列出所有任务;

-r:移除所有任务;即删除/var/spool/cron/USERNAME文件;

-i:在使用-r选项移除所有任务时提示用户确认;

-u user:root用户可为指定用户管理cron任务

注意:运行结果以邮件通知给当前用户;如果拒绝接受邮件;

(1)COMMAND > /dev/null

(2)COMMAND &> /dev/null

注意:定义COMMAND时,如果命令需要用到%,需要对其转义;但放置于单引号中的%不用转义亦可;

如果某任务在指定的时间因关机未能执行,下次开机是不会自动执行,如果期望他能够继续自动执行;可使用anacron实现;

第三章 mail命令

mail命令:mailx -send and recelve Internet mail

MUA:Mail User Agent,用户收发邮件的工具程序;

mailx [-s 'SUBJECT'] username[@hostname]

邮件正文的生成:

(1)交互式的输入;单独成行可以表示正文结束;Ctrl+d提交亦可;

(2)通过输入重定向;

(3)通过管道;

第四章 计划任务作业及练习

1、每天的2点和12点整,将/etc备份至/testdir/backup目录中,保存的文件名称格式为“etcbak-yyyy-mm-dd-HH.tar.xz”

2、每周2, 4, 7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd”

3、每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中

4、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80%,就执行wall警报

原创文章,作者:Kartik,如若转载,请注明出处:http://www.178linux.com/49539

linux 周期性任务,Linux任务计划,周期性任务执行详解相关推荐

  1. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  2. linux Shell(脚本)编程入门实例讲解详解

    linux Shell(脚本)编程入门实例讲解详解 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集, ...

  3. linux中apache配置文件在哪,linux网站服务Apache的安装与配置方法详解

    这篇文章介绍下linux网站服务apache的安装与配置方法,包括挂载光盘,安装http服务,管理httpd服务,httpd的配置文件几大部分.具体详情可以参考下文. 1.挂载光盘 自己习惯将光盘挂载 ...

  4. linux c多进程多线程,linux下的C\C++多进程多线程编程实例详解

    linux下的C\C++多进程多线程编程实例详解 1.多进程编程 #include #include #include int main() { pid_t child_pid; /* 创建一个子进程 ...

  5. 创建三个并发进程linux,Linux下几种并发服务器的实现模式(详解)

    1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...

  6. linux输出文件没有找到,Linux环境下标准输入、输出、错误信息详解

    Linux环境下标准输入.输出.错误信息详解 下面我们介绍在Linux环境下标准输入.输出.错误设备.标准输入设备代号为0, 用来显示输入信息,标准输出设备代号为1,用来显示正常信息,标准错误设备代号 ...

  7. dns日志级别 linux,linux下DNS服务器视图view及日志系统详解

    linux下DNS服务器视图view及日志系统详解DNS服务器ACL:在named.conf文件中定义ACL功能如同bash当中定义变量,便于后续引用 ACL格式: acl ACL名称 { IP地址1 ...

  8. linux中cat、more、less命令区别详解

    linux中cat.more.less命令区别详解 转自:https://blog.csdn.net/xyw_blog/article/details/16861681 众所周知linux中命令cat ...

  9. 1 linux下tcp并发服务器的几种设计的模式套路,Linux下几种并发服务器的实现模式(详解)...

    1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...

  10. linux里sh命令是做什么的?详解!

    linux里sh命令是做什么的?详解! cs_jiao | 浏览 49759 次  2010-08-20 12:05  2010-08-20 12:29 最佳答案 sh或是执行脚本,或是切换到sh这个 ...

最新文章

  1. mongodb转json
  2. C语言SIX/NINE问题
  3. unity fixedupdate_3D俯视角射击——用Unity还原东方弹幕(上)
  4. java se基础巩固实例,Java SE基础巩固(十五):lambda表达式
  5. 在ASP.NET MVC中进行TDD开发
  6. matlab读取excel里的数据并用imagesc画图
  7. 【QT】Qaction和触发函数建立连接的方法
  8. GBDT(MART) 迭代决策树入门教程 | 简介 写的非常好!!
  9. IDEA设置字体随鼠标滚动放大缩小
  10. 怎样在Word2010中新建样式
  11. 医药、药品、医疗器械类网站备案需要什么材料?
  12. 如何用计算机看苹果手机的文件,如何在电脑上管理iphone文件?
  13. 因创新而更美,永洪科技获大数据产业创新百强
  14. 电脑有网但是浏览器无法显示网页
  15. Access数据库的.ldb文件
  16. 侍魂无限跳服务器,经典游戏《真侍魂》橘右京的无限残像,对手就这么活活的被挡死了...
  17. 设计模式综合实例分析之数据库同步系统(一)
  18. C语言拯救者 (操作符--6)
  19. Amdahl定律及木桶原理
  20. python3程序下载安装_Python3 环境搭建

热门文章

  1. 【摘】蓝牙技术及其协议栈
  2. 47. 全排列 II
  3. 2-1 年会抽奖_实现分析
  4. java中properties作用,Java中Properties的使用详解
  5. qml 时间控件_Qt6官方最新消息:桌面样式Qt quick Controls 2支持大多控件,委托更少,运行更流畅...
  6. 公众号跳转小程序首次没有数据_小程序如何从“0”开始运营,变成获客神器...
  7. 浏览器向服务器发送的消息称为,网络是怎样连接之浏览器的探索之旅读书笔记(一)...
  8. c语言右上左下遍历数组,如何将一个数组的元素循环左移?
  9. 基于机器视觉的细小金属件表面污渍检测
  10. 多多客DOODOOKE 1.x升级2.x指南