m20预习笔记整理--linux任务计划

周期性执行任务
    1、未来的某时间执行一次某任务 at、batch
    2、周期性运行某任务crontab

执行结果:会通过邮件发送给用户
邮件:
    1只用于本机的邮件服务
    2本机用户之间传递邮件
    /var/spool/mail/username
    注:不同于互联网的电子邮件,仅本机用户之间发送邮件
        cenos5,6,7默认邮件功能都是开启的

检测邮件功能是否开启
    ss -tnl
    netstat -tnl
    25号端口为服务端口处于监听状态
    netstat -tnlp 显示出程序名称 master
本地电子邮件服务
    smtp:用户向服务器发送邮件
      用户收邮件:
        pop3
        imp4

mail命令

mailx:收发邮件
mua:用户收发邮件的程序(相当于windows下的foxmail)

发送
    mailx -s ”hello centos“ centos  发送标题为hello centos 的邮件
    how are you these days
    .  (点号结束邮件编写退出并发送)
    接收邮件mail
    &(选取邮件编号)查看邮件
    &q退出

邮件正文的生成
        1交互式输入,点号成行可以表示结束正文;ctrl+d
        2通过输入重定向
        3通过管道

at     命令
    at[OPTION]...TIME
    TIME:
    HH:MM [YYYY-MM-DD]
    noon(中午);midnight(半夜);teatime(下午4点)
    tomorrow(明天)
    now+#
        #单位:minutes,hours,days,weeks
                at now+2min

at > cat /etc/issue
    at > ls /var
    at > echo "hello there"

#ctrl+退出
    at -l         显示任务查看作业队列
            任务完成后自动发送邮件给用户
                  at的作业队列,用单个字母表示,默认都使用a队列
    at -l=at q
    at -f    /path/from/somefile 从指定文件中读取任务
            注vim输入命令即可,每行一个;而不用交互式输入
       
    at -d # 删除任务 ,#作业号
    at rm=at -d

[[email protected] ~]# at now  +2min-----#2分钟后执行以下命令
 at> cat /etc/issue
 at> ls /dev
 at> cat /etc/issue
 at> ls /var
 at> echo "hello there"
 at> <EOT>---------------------#ctrl+d结束输入

[[email protected] ~]# at -l-----------------#列出队列
 6       2016-07-22 18:24 a root
 [[email protected] ~]# at -c 6---------------#显示队列内容

atrm
 atq
 atrun
 attr
 atd

注意:at支持使用脚本,但脚本中的命令最好给出绝对路径,因为环境变量可能与用户不一致导致出错。

batch命令
 batch会让系统自动选择在系统资源相对较空闲的时候运行程序

周期性任务计划:cron
 需要一个服务实时检测是否有满足时间的任务
 centos6,7使用的服务为cronie
 cronie主程序包,提供了crond守护进程及相关辅助工具
 确保cron守护进程daemon处于运行状态
 ~]#systemctl status crond.service----------centos7查询服务状态
 ~]#service crond status--------------------centos6查询服务状态

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

cron任务分为2类
 系统cron任务:主要用于实现系统自身的维护
 用户cron任务:用户自己定义的任务

系统cron任务 :手动编辑/etc/crontab文件
 用户cron任务 :命令crontab  /var/spool/cron/username

cron时间表示法
 1特定值
  给定时间点有效取值范围内的值
  注:day of week和day of month一般不同时使用

*:星号 五个字段分别表示 分钟 小时 日 月 星期几
   给定时间上有效取值范围内的所有值表示“每”
   在哪一位上表示每“分,小时,天,星期,月..”
   列如:
    3 * * * *-------------每几点三分执行
    3 4 * * 5-------------每周五四点三分执行
    5 6 7 * *-------------每月的7号的6点5分执行
    7 8 9 10 *------------每年的10月9号8点7分

2离散取值
  在时间点上使用逗号分隔的多个值
   例如
    9 8 * * 3,7-----------每周三和周日的8点9分执行
    0 8,20 * * 3,7--------每周三和周日的8点和20点执行

3连续取值
  在时间点上使用——连接开头和结尾
  #-#
  例:
   0 9-18 * * 1-5------------每周一和周五9点至18点每小时执行一次

4在指定时间上,定义步长
  列:
   */5 * * * *---------每5分钟执行一次
   注意:指定的时间点不能被步长整除时,其意义将不复存在
      cond最小单位为分钟,向完成秒级任务,需要其他机制如:定义每分钟执行一次,而再利用脚本每三秒执行一次,循环多次。

crond命令
 crond [-u user][-l|-r|-e][-i][-s]
   -e  编辑任务
   -l  列出所有任务
   -r  移除所有任务
   -i  在使用-r时提示用户确认
   -u  user    root用可为指定用户管理cront任务
  定义command时命令中需要用到“%”时需要使用转义或放到单引号中

思考:某任务在指定时间因关机未能执行,下次开机时会不会自动执行
  答案:不会

如果期望某时间因故未能按时执行,下次开机时无论是否了相应时间点都要执行一次,可使用anacron实现
 课外作业:anacron用法

时间: 2024-10-12 21:53:10

m20预习笔记整理--linux任务计划的相关文章

m20预习笔记整理--linux基础知识

程序由指令+数据组成    高级语言--编译器--汇编语言--编译器--机器语言    linux指的是GUN tools+linux内核 系统结构    硬件        内核(内核隐藏了硬件特性,将计算机的计算能力抽象提供给应用程序使用)            应用程序(基于内核的systemcal实现的程序)            shell(也是应用程序)            库函数(.a或.so----是程序,但是没有执行入口,只能被调用)                应用程序,

m20预习笔记整理--正则表达式及find

文本处理工具linux文本处理三剑客    grp:文本过滤工具(模式:pattern)    sed:文本编辑器--流编辑器    awk:linux上的实习为gawk,文本报告生成器(格式化文本) 三个工具都会用到正则表达式 Regual Expression    由一类特殊字符及文本字符所编写的模式,其中有些字符不表示字面意义,而是用于控制或通配的功能分类    基本正则表达式    扩展正则表达式        二者区别元字符不同grep:global search regular e

m20预习笔记整理--bash特性

命令引用    $(command)    `command`    `` 反引号  ~符号键    [[email protected] ~]# mkdir `date +%H-%M-%S`    [[email protected] ~]# mkdir $(date +%H-%M-%S) 命令行展开    ~自动展开为用户的家目录,或指定用户的家目录(管理员可以)    {}可以承载一个以逗号分隔的路径列表,并能够将其展开为多个路径        [[email protected] ~]#

笔记整理--Linux守护进程

Linux多进程开发(三)进程创建之守护进程的学习 - _Liang_Happy_Life__Dream - 51CTO技术博客 - Google Chrome (2013/10/11 16:48:27) Linux多进程开发(三)进程创建之守护进程的学习 2013-07-04 17:25:35 标签:守护进程 daemon Linux多进程开发 系统编程 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liam2199.bl

笔记整理--Linux平台MYSQL的C语言

Linux平台MYSQL的C语言API全列表 - 第三只眼的专栏 - 博客频道 - CSDN.NET - Google Chrome (2013/8/18 22:28:58) Linux平台MYSQL的C语言API全列表 2013-02-19 15:17 78人阅读 评论(0) 收藏 举报 1.mysql_affected_rows()            //返回上次UPDATE.DELETE或INSERT查询更改/删除/插入的行数. 2.mysql_autocommit()        

笔记整理--Linux编程

linux c编程open() read() write()函数的使用方法及实例 | 奶牛博客 - Google Chrome (2013/8/31 17:56:10) 今天把文件IO操作的一些东东整理下.基本的,对于锁机制下次再整理.常用的文件IO函数有标题的三个open() read() write() .首先打开一个文件使用open()函数,然后可以获取到一个文件描述符,这个就是程序中调用这个打开文件的一个链接,当函数要求到文件描述符fd的时候就把这个返回值给函数即可.read跟write

笔记整理——Linux下C语言正则表达式

Linux下C语言正则表达式使用详解 - Google Chrome (2013/5/2 16:40:37) Linux下C语言正则表达式使用详解 2012年6月6日Neal627 views发表评论阅读评论 标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库. C语言处理正则表达式常用的函数有regcomp

Linux crontab 计划任务整理

Linux crontab 计划任务整理 安装 yum install -y vixie-cron # 安装 常用命令 crontab -e # 编辑 crontab -l # 查看 crontab -u # 指定用户 service crond start # 启动 service crond stop # 关闭 service crond restart # 重启 service crond reload # 重载配置 配置 格式 * * * * * 分 时 日 月 星期(0-6) 说明 *

Linux学习笔记(整理记录)

1.安装 (1):安装网址:http://www.jb51.net/os/78318.html 2.鸟哥的Linux命令学习 (1):显示系统目前所支持的语言:echo $LANG (2):修改语言成为英文语系:LANG=EN_US (3):显示日期与时间的命令:date+%y-%m-%d (4):显示日历的命令:cal 2015 (5):简单好用的计算机:bc  退出命令 quit 3.命令学习 在Linux学习中,如果我们要使用linux命令操作的话,是需要切换到管理员用户下的,下面简单整理