周期性任务计划与cron

一、邮件收发

  服务启动与否状态查看:netstat -nlptu "25"端口  smtp服务正常

  默认收发邮件仅能在本机上的用户间进行,且只能通过回环接口上的地址进行

  mail命令:

  收邮件:mail

        q:退出

        N:查看第N封邮件

  发邮件给指定用户:

  mail USERNAME[@HOSTNAME]

    -s "SUBJECT"

  COMMAND | mail

二、Linux任务计划

 一次性任务计划:at,batch

 周期性任务计划:cron


at:

  at TIME

  提交任务:Crtl+d

  作业结果:以邮件形式发送系统上的当前用户

  把at要执行的任务放置于文件中,让at读取此文件作为要运行的任务

  at -f /FILE TIME


    TIME的格式:

       精确时间:  HH:MM

       模糊时间: now+#UNIT noon(12点) midnight(12:00) teatime(16:00) tomorrow+

   作业队列查看:

     at -l,atq

删除尚未运行的作业 at -d JOBNUM, atrm 


bath:无须指定时间,会自动在将来的某个系统资源较空闲的时间点来运行



cron:

   依赖于后台服务,查看运行状态 service crond status

cron任务有两类:

      系统cron: /etc/crontab

      用户cron:定义在/var/spool/cron/目录中与用户名同名的文件中


1、每行定义一个独立的任务

2、建议在定义cron任务时,所用到的命令使用绝对路径,如果脚本,脚本中的命令使用绝对路径,或自定义一个完整的环境变量

格式: 时间点(周期性任务)   user-name:用户身份  command:要运行的任务

时间点:

      分钟   小时   天   月  周几

 每年     4   7   3   2   *   

 每月     20  18  6   *   *

 每天     20  9   *   *   *

 每小时    3  *   *   *   *

 每分钟    *  *  *   *   *

 每周     16  17  *  *   3  

5个时间点:

分钟:有效取值范围0-59;

小时:0-23

日:1-31

月:1-12

周几:0-7

注意:几月几号与周几,不建议同时使用;

时间表示法:

*: 对应时间点有效取值范围内的每个时间点;

-: 一个特定连续时间范围, 3-7

,:一个离散的时间点, 3,5,7

/#:有效时间范围内的每多少时间;用于指定频率;

1-30/4, */4

5 */3 * * * /bin/echo "howdy"

5 7 * * 1-5 /bin/echo "howdy"

1、每个时间位都应该使用其可用的有效取值范围,*表示使用其所有有效取值

2、*/#在对应的时间位有效值上每#个时间单位一次

        */3  *  *   *  *    注意:并不能精确做到每3分钟一次

        *   */3  *  *  *  ?  * */3 * * *

        40  3   *   *  1-5

        40   3  *   *  2,4,7

任务运行后的结果,邮件发送给任务相关用户;丢弃邮件通知:输出重定向 COMMAND>/dev/null


用户cron任务的定义:会自动检查语法错误,

   crontab命令:

       -l 列出当前用户的所有任务

       -e 打开编辑界面定义任务

       -r 移除所有任务

       -u USERNAME 管理指定用户crontab

  注意:如果crontab中的用户命令中需要使用“%”要用“\”转义

系统cron的定义:

    直接编辑/etc/conttab文件即可

anacron:为cron提供了补充:

你可能感兴趣的:(crontab,cron)