Linux之任务计划

在了解linux任务计划之前,先来了解linux的邮件服务,因为任务计划默认会调用mail邮件服务来发送邮件。以下对mail邮件服务,进行初步了解。主要对邮件发送方法,查看邮件等。

常见邮件应用协议:

SMTP:(Simple Mail Transmission Protocol)简单邮件传输协议,TCP 25端口,smtps (linux操作系统默认启用smtp服务)

POP3:(Post Office Protocol)第3版邮局协议,TCP 110端口,pops

IMAP4:(Internet Mail Access Protocol)因特网消息访问协议,TCP 143端口,imaps

Mine/MIME:(Multipurpose Internet Mail Extensions)多用途、多功能互联网邮件扩展:以文本的方式对二进制数据做重新编码,并能够实现以文本协议发送二进制数据。常用编码编码方式:base64.。

语法:mail [-iInNv][-b][-c][-f][-s][-u][收信人地址]

常见参数选项

-f:读取指定邮件文件中的邮件

-s:邮件的主题

-u:读取指定用户的邮件

三种常用格式发信

1、当前shell当成编辑器来用,编辑完内容后Ctrl+D结束

mail -s mytest root@localhost

2、用管道编辑内容发送

echo "mytest mail mytest2" |mail -s mytest2 root@localhost

3、以文件内容作为邮件内容发信

mail -s mytest3 root@localhost < /tmp/mytest3.txt

任务计划可以分两种:一次性任务作业(at命令、batch命令);周期性任务作业(crontab命令、anacron)

一次性任务作业:at,一种交互式命令,有两种执行模式:交互式,它可以让用户在at>提示符下输入一个或多个命令;批处理式,将任务的命令写入文件中,由at调用

batch的命令使用与at的区别是,batch不能设定执行的时间,只能由系统自动选择空闲的时间执行,这里不做过多介绍,只是简单了解

注意:Ctrl+d为提交作业;任务执行的结果默认会以邮件的方式发送给提交者

语法:at [参数] 时间点

常见参数选项

-v:显示任务将被执行的时间

-c:显示任务的内容

-q:指定列队

-f:从指定的文件中读取要运行的作业

-t:以时间参数的形式提交要运行的任务

TIME:时间格式

hh:mm(小时:分钟)

midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)

now+time-units ,now就是当前时间,time-units是时间单位,可以是minutes(分钟)、hours(小时)、days(天)、weeks(星期)22

以下交互式模式,示例:在22:01执行查看/tmp目录信息,显示/etc/fstab自动挂载信息两个任务

注:作业有队列的概念,默认情况下,所有作业都在一队下,作业列表是[a-z],使用命令 at –q [a-z]

以下文件模式,示例:在23:00执行文件fileat,fileat查看/tmp目录信息并且显示/etc/fstab自动挂载信息

周期性任务作业

crond是守护进程:指运行在后台随时监听用户的请求随时响应的进程。

cron分系统级别和用户级别,系统级别:系统自动执行的,以系统的环境变量(非登陆时shell)去运行该些进程,因此在编写脚本的时候被调用的命令建议写全路径,不然会出现执行脚本的

时候找不到路径的情况。执行结果默认会以邮件发方式发送给root用户,如果不想发邮件可以任务作业重定向至/dev/null(也称黑洞)

系统cron的文件保存/etc/crontab中,用户crontab在/var/spool/cron/UserName中

语法:crontab –l|-r|-e|-i [username]

常见参数选项

-l:显示作业文件的内容

-i  作业前给提示,常与r并用

-r  删除作业任务

-e  编辑作业任务

管理员加上-u 可以为普通用户指定任务:如crontab –l –u [普通用户]

以下强调一下上面描述的注意事项:

(1) 如果不想接收任务执行结果的通知邮件:COMMAND > /dev/null或COMMAND &> /dev/null

(2) 对于crontab文件来讲,%有特殊功用;如果命令中会出现%, 要记得转义,或者用单引号对其引用

(3) crontab的PATH变量与用户的变量不完全相同,所以,建议在cron中的任务要使用绝对路径

下面简要解析crontab中时间格式

# 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

第一段:分钟 0—59

第二段:小时 0—23

第三段:日期 1—31

第四段:月份 1—12

第五段:星期几,0代表星期日 0—6

举一些小例子说明时间表示法:

1)每个时间都应该使用其可用的有效取值范围内的值;

2 3 4 * *      //4号3点2分

2)某时间位上的*表示每

* 3 4 * *       //4号3点每一分钟都执行

3)-:连续的时间相邻取值

15-18 3 4 * *   //4号3点的15分到18分每分执行一次

4),:离散的时间取值

10,15,20 3 4 * *   //4号3点的10分,15分,20分各执行一次

5)/#,表示在指定时间范围内每隔#一次

*/15 3 4 * *      //4号3点每15分钟执行一次

6)如果我们不……想查看执行的结果呢,可以把输出重定向,如:

0 */2 * * *   /bin/echo “mytest1” &> /dev/null

示例:4号3点2分查看/etc/fstab文件

注:anacron和cron 相似的任务调度器,只不过它并不要求系统持续运行,它可以用来运行通常由 cron 运行的每日、每周、和每月的作业;任务被列在配置文件 /etc/anacrontab 中。对于每项任务,anacron 先判定该任务是否已在配置文件的 period 字段中指定的期间内被执行了。如果它在给定期间内还没有被执行,anacron 会等待 delay 字段中指定的分钟数,然后执行command 字段中指定的命令;

练习:

1、每周一到周六的凌晨3点20分,运行cp命令对/etc/目录进行归档另存,存储位置为/backups/etc-YYYY-MM-DD;

2、每周日凌晨2点30分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backup/fstab-YYYY-MM-DD-hh-mm-ss

3、每天晚上12点,取得/proc/meminfo文件中所有以S或M开头的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上类似===============分隔线

或者使用

0 0 * * * /usr/bin/egrep (egrep '^(S|M)' /proc/meminfo;echo "====================") >> statistics/meminfo.txt

linux提交任务执行时间,Linux之任务计划相关推荐

  1. linux 进程的执行时间,Linux 获取进程执行时间

    Linux 获取进程执行时间 1 前言 测试一个程序的执行时间, 时间包括用户 CPU 时间系统 CPU 时间时钟时间之前获取之前时间都是在程序的 main 函数用 time 函数实现, 这个只能粗略 ...

  2. linux计算脚本执行时间,linux – 计算shell脚本每一步的时间并显示总执行时间

    我有下面的脚本,并且要求我必须为每个脚本放置一些函数来获取每个脚本的时间信息,并最后显示总时间. 我的主要脚本如下所示: /u01/scripts/stop.sh ${1} | tee ${stop_ ...

  3. linux任务计划不执行时间,Linux任务计划、周期性任务执行

    Linux任务计划.周期性任务执行 内容简要命令:mail, at, crontab 相信每个人都有使用闹钟的习惯,我们设定闹钟的种类有很多.比如说,只提醒一次.工作日提醒.休息日提醒等.在设定闹钟之 ...

  4. Python模拟Linux的Crontab, 写个任务计划需求

    Python模拟Linux的Crontab, 写个任务计划需求 来具体点 需求:执行一个程序, 程序一直是运行状态, 这里假设是一个函数当程序运行30s的时候, 需要终止程序, 可以用python, ...

  5. Linux 如何取进程运行时间,linux -- 获取进程执行时间

    获取进程执行时间 一.时间概念 在linux下进行编程时,可能会涉及度量进程的执行时间.linux下进程的时间值分三种: 时钟时间(real time):指进程从开始执行到结束,实际执行的时间. 用户 ...

  6. linux基金会认证考试,Linux基金会宣布新的Linux认证计划-嵌入式系统-与非网

    新计划推出首个全虚拟化.注重实际表现.不限发行版的认证考试,将有助扩大全球Linux专业人才库 Marketwired 2014年8月20日美国伊利诺伊州芝加哥消息--LINUXCON+CLOUDOP ...

  7. Linux系列教程——1 Linux磁盘管理、2 Linux进程管理、3 Linux系统服务、 4 Linux计划任务

    文章目录 1 Linux磁盘管理 1.磁盘的基本概念 1.什么是磁盘 2.磁盘的基本结构 3.磁盘的预备知识 1.磁盘的接口类型 2.磁盘的基本术语 3.磁盘在系统上的命名方式 4.磁盘基本分区Fdi ...

  8. Linux 基础命令(十一)—— 创建计划任务

    Linux 基础命令(十一)-- 创建计划任务  Published On August 28, 2017 前言 查看全文 http://www.taodudu.cc/news/show-599044 ...

  9. linux 内核 4.9,Linux Kernel 4.9发布下载

    Linus Torvalds 在内核邮件列表上宣布正式释出 Linux Kernel 4.9,4.10合并窗口开启.为期两周的合并窗口预计将在圣诞节这天关闭,Linus表示因为假期的原因他考虑缩短或延 ...

最新文章

  1. 关于事件监听机制的总结(Listener和Adapter)
  2. Maven(2)--生命周期以及插件目标
  3. HDOJ1394 Minimum Inversion Number【线段树】
  4. 解决“Failure to find com.oracle:ojdbc6:jar”,手动安装ojdbc的jar包到maven私仓
  5. 图片格式之YUV420 转RGB格式(含代码)
  6. 点赞功能设计,网上的,留个底
  7. Linux中7个判断文件系统类型的方法
  8. Dubbo 本地存根
  9. php不显示内容里的图片不显示,图片显示不出来,但是数据库里有显示
  10. LeetCode刷题(37)--Edit Distance
  11. Google、Baidu
  12. Linux运维故障排查——SSH连接Fedora不成功的原因
  13. AI驱动智能化日志分析 : 通过决策树给日志做聚类分析
  14. 使用argparse对python脚本时运行时添加参数
  15. 各种水龙头拆卸图解_扭力扳手使用方法图解与注意事项、原理、种类
  16. 【数据结构】--章节2.3----线性表的链式表示和实现
  17. mooon-agent核心设计图
  18. 在python中编写socket服务端模块(二):使用poll或epoll
  19. 关于图片的Exif信息
  20. 关于javaFx 操作串口 报错的问题~

热门文章

  1. html调用一言api,一言-纯净API
  2. 2022年起重机司机(限桥式起重机)新版试题及起重机司机(限桥式起重机)作业考试题库
  3. Python 优雅地利用两点经纬度计算地理空间距离
  4. 《我也能做CTO之程序员职业规划》之十六:逆商
  5. python基于不同方法实现特征工程常用的归一化技术Normalization对比分析
  6. linux系统中ssh命令,Linux系统中SSH 命令的用法有哪些?
  7. ReCap 360 photo照片建模技术的又一个例子
  8. 如何快速制作Gif动图
  9. 从数据库当中读取Double类型数据,数值过大时会变成科学计数法问题解决方案
  10. 广州科二化龙考场_广州化龙科目二?