linux 自动任务执行结果,Linux自动执行任务

单次执行用at和batch,周期性任务执行用crontab。任务执行结束后会将结果返回给发起人,通过邮件完成的。

邮件位于:/var/spool/mail/user_name

单次执行任务:at,batch

at

at [OPTION]...TIME

TIME表示方法:

HH:MM[YYYY-mm-dd]

noon(中午十二点),midnight(晚上十二点),teatime(下午四点)

tomorrow

now+#

UNIT:minutes,hours,days,weeks

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

-l: 查看作业队列,相当于atq

-f /path/to/somefile:从指定文件中读取作业任务,而不用交互式输入

-d:删除指定作业,等于atrm

-c:查看指定作业的具体内容

-q QUEUE:指明队列

注意:作业执行结果会发送邮件给用户;

注意:at可以执行脚本,但是执行的工作目录可能不一样,所以脚本中的路径最好用绝对路径表示;

batch:

batch会让系统负载水平允许的时候执行任务;

各个细节和at一样

周期性任务:cron

服务程序:

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

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

CentOS 7:

systemctl status crond.service

Active:atcive (running)......

CentOS 6:

service crond status

...is running

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

对于系统cron配置的格式:/etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=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.每行定义一个周期任务,有七个字段,各字段之间用空格进行分割:

* * * * * :指定周期性时间(5)

user-name :指定执行用户(1)

command to be executed:要执行的任务(1)

2.此处的环境变量不同于用户登录的环境变量,所以命令用绝对路径(whereis 查看命令绝对路径),或者自定义环境变量;

3.执行结果通过邮件发送给MAILTO指定的用户

用户cron的配置:/var/spool/cron/USER_NAME

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=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.使用绝对路径或者自定义环境变量

3.邮件放给当前用户

时间表示:

1.特定值:

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

day of week和day of mouth一般不同时使用;

2. * :给定时间点上有效取值范围内的所有值;

3.离散取值表示:用逗号隔开

4.连续时间:用 - 表示,#-#

5.在指定的时间点上,定义步长: /#:#即步长: */3 * * * *:每三分钟执行一次

注意:

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

2.cron最小单位为分钟,想完成 秒 的任务,需要用其他机制;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值