Week 5 — 01 计划任务执行

#Week 5 — 01 计划任务执行

##mail

邮件正文的生成:

– 交互式输入
– 通过输入重定向
– 通过管道

##at命令
**at [OPTION] TIME**

TIME:
    
    HH:MM [YYYY-mm-dd]
    tomorrow
    now+#
        单位:min,hour,day,week
        eg:at now+2mins

at的作业有队列,用单个字母表示,默认使用a队列  

**常用OPTION:**  

    -l:查看作业队列 (等于atq)
    -f FILE :从指定文件中读取作业任务
    -d:删除指定任务(等于atrm)
    -c:查看指定作业的具体内容
    -q:指定队列

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

##batch命令

batch命令会让系统自行在资源较空闲的时间取执行指定的任务

##周期性任务计划:cron

需要一个服务程序时刻查看有哪些需要执行:

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

确保crond守护进程(daemon)处于运行状态:
    
    systemctl status crond.service

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

###cron任务分为两类:

– 系统cron任务:主要用于系统自身的维护
    – 手动编辑/etc/crontab 

– 用户cron任务:
    – 使用crontab命令
    – 手动编辑/var/spool/cron/USERNAME

###系统cron任务配置格式

    SHELL  
    PATH  
    MAILTO 

注意:

– 每一行定义一个周期性任务
– 环境变量建议使用绝对路径
– 执行结果邮件发送给MAILTO指定用户

###用户cron配置格式

– 每一行定义一个周期性任务,包含6个字段
– 环境变量建议使用绝对路径
– 执行结果邮件发送给当前用户

###时间表示法

– 特定值:给定时间点有效取值范围内的值
– *:给定时间段上有效取值范围内的所有值
– 离散取值:在时间点上使用逗号分割的值
– 连续取值:#-#
– 在指定时间点上定义步长:/#
    – 注意:给定时间=点不能被步长整除时,意义不存在
    – 最小时间单位为分钟

eg:

    3 * * * * 每小时的第3分钟
    3 4 * * 5 每周5的4点3分
    5 6 7 * * 每月7号的6点5分
    9 8 * * 3,7 每周三和周日的8点9分

拒绝接受邮件:
    
    COMMAND &> /dev/null

##练习
制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00  
– 首先建立一个脚本文件/tmp/test.sh
    
    #!/bin/bash
    date "+%F %H:%M:%S" 
– 然后给执行权限  

    chmod u+x /tmp/test.sh

– 添加到crontab

    crontab -e
    10 3,5 * * 3 /tmp/test.sh

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

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code