linux小马地址,Linux计划任务

在日常工作或使用计算机时,如果我们需要在某个时间执行某项任务,或在固定周期重复执行某项任务,我们需要对系统设定计划任务;在linux系统中,我们可以使用一次性计划任务at和batch命令,或者周期性计划任务crontab。

一、一次性任务执行:

1、命令格式:

#at [option] TIME

2、TIME格式:

特定时间:

HH:MM:其中HH为小时,MM为分钟。

MMDDYY,MM/DD/YY:其中MM是分钟,DD是第几天,YY是指年份。

now+UNIT:其中UNIT单位可以为minutes ,hours,days ,weeks。

模糊时间:

today,noon,midnight,teatime,tomorrow

3、at任务格式:

#at TIME

at> COMMAND

Ctrl+d:提交任务

at有作业队列:使用单个字母表示

at �l,atq: 查看作业队列中的待执行任务

at -d,atrm:删除任务。

任务作业执行完成后:结果会通过邮件通知给作业提交者

CentOS: 默认会安装并启动邮件服务,仅服务于本地系统;

#batch:功能同at,但无须为其指定时间,其会选择系统资源较空闲时执行指定的作业

二、周期性任务执行:

1、安装并启动服务:

需要安装的程序包:crond

#yum install cronie

检查crond:

#/etc/init.d/crond status

ee6ea50c9292b2031a3e3552a25a9025.png

如果状态信息为“is stopped”,则需要启动crond:

#/etc/init.d/crond start

检查crond开机启动:

#chkconfig �list crond

bccbf54a967dc1c921f3808fc4f8afb4.png

若为非开机启动需要设置开机启动crond:

#chkconfig crond on

2、cron任务分类:

系统cron:定义在/etc/crontab;

用户cron:定义在/var/spool/cron目录中,每个用户都有一个与用户名同名的文件,其功能类似于/etc/crontab。

3、crontab使用方法:

用户cron任务的定义方式:

crontab

-uusername:指定用户,无-u选项默认为当前用户。

-l:列出已经定义的所有任务

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

-r:移除所有任务

#crontab-u USERNAME �e

/var/spool/cron/目录也只有root用户才可读写;普通用户可使用crontab -e命令编辑任务;

4、crontab格式:

执行#crontab -e,会出现vim编辑器进行任务编辑;

格式说明:

#vim /etc/crontab

87befc6f61be3e66d1a5ef60b1cad440.png

格式:

cron在执行任务命令时需要指定环境变量,例如SHELL、PATH、HOME、MAILTO等;

左侧表示时间,右侧为执行的命令;

每行定义一个独立的任务:

时间:

时间由5个数字组成,分别表示:分钟(0-59)、小时(0-23)、日期(1-31)、月份(1-12)、星期(0-6)。

特殊符号:

*:任意数;

/#:每#个单位;

M�N:由M到N

A,B,C,…:A,B,C等多个数。

时间表示法:

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

3 * * * * | 17 3 * * * | 7 6 5 * * | 7 6 5 4 *

(2)、某个时间位上的*表示对应时间位的所有有效取值;

1 9 * * 3,每周三的9点1分。

(3)、*/#:在对应的时间位的有效取值上每#一次;

*/3 * * * *:每3小时;

0 */3 * * *:每3小时的整点;

*/8 * * * *:每8分钟 ;0-59:0, 8, 16, 24, 32, 40, 48, 56;

(4)、某个时间位上的连续区间:-

10-50/3 * * * *:由10分至50分之间,每3分钟执行;

(5)、离散取值:

1 7,9,13 * * *:7:01,9:01,13:01

命令:

如果定义在cron中的任务是脚本,此脚本中的各命令查找时遵循的是cron的PATH环境变量定义;因此,在命令行中测试无问题的脚本,在cron中未必;

解决方案:

命令使用绝对路径;在脚本中开始自己定义一个专用PATH环境变量。

如果在crontab的用户命令中使用%,得转义,使用\%的格式;不过,如果使用单引号引起来,也可不用转义;

5 3 * * * /bin/touch /tmp/testfile-$(date+\%F-\%H-\%M-\%S)

6 4 * * * /bin/touch /tmp/testfile-$(date+'%F-%H-%M-%S')

执行任务:

任务作业执行完成后:

每一次的执行结果会通过邮件通知给作业提交者;

丢弃邮件通知:

输出重定向:

> /dev/null

&> /dev/null

> /dev/null 2>&1

5、补充:

如何实现秒级别的任务:

每10秒钟:

* * * * * for i in {1..5}; do echo "howdy";sleep 10; done

0

10

20

30

50

0

anacron: crontab的补充机制:

检查有没有过去一个有效周期未曾执行的任务,如果有,在开机后的指定时间点执行一次。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值