linux 计划任务

Linux之 计划任务

介绍

相信每个人都有使用闹钟的习惯,我们设定闹钟的种类有很多。比如说,只提醒一次、工作日提醒、休息日提醒等。在设定闹钟之后,每天的设定时间都会按时的提醒你去做什么事情,以免自己忘记一些重要的会议等事情。像这样在每天特定的时间安排做一些事情。这样一种事情我们就称之为例行任务计划。 其实在个系统平台上都有类似的例行性任务计划功能,那如何去像设定闹钟一样在Linux系统之上指定例行性任务计划。

Linux的计划任务是系统管理方面的一个重要内容,是系统自动完成工作的一种实现方式,正因为有了计划任务,我们才可以完全实现系统管理的脚本化和自动化,提高工作效率。

本文将从以下两个大方面介绍Linux系统中计划任务。

  • 一次性计划任务–at命令
  • 周期性计划任务–cron命令

一次性计划任务–at命令

一次性计划任务就是根据用户设定在未来的某个时间点执行一次任务,执行完毕后就结束,本文所有内容皆以CentOS6版本为例。

一、at 命令

at 命令的设定格式at [-V] [-q queue] [-f file] [-mMlbv] TIME

options:

TIME 指定任务的开始执行时间

TIME的几种表达格式

这里说明:作业执行命令的结果中的标准输出和错误以mail通知给安排任务的用户,如果任务非常多需要考虑定期清理邮件内容,防止垃圾过多影响系统稳定运行

at 命令创建计划任务

在创建一次性计划任务时,有多中方法下面列举出几种供读者来比较

交互式创建

交互式定义计划任务的方式,是最简单的。
这里说明:交互式定义计划任务的时候,需要Ctrl+D正常退出命令
举例说明:

输入重定向设定计划任务

at命令也可以接受重定向,因此我们按照格式直接设定就好

从文件中读入

与其它许多命令一样,at也可以接受来自文件的输入。

at 命令 白名单 黑名单

  • 白名单:/etc/at.allow 默认不存在,只有该文件中定义的用户才能执行at命令
  • 黑名单:/etc/at.deny 默认存在,拒绝该文件中定义的用户执行at命令
  • 如果两个文件都不存在,只有 root 可以执行 at 命令,
  • 如果两个文件都存在,则at.deny文件失效,只有at.allow文件中白名单可以执行at命令,不在allow文件中的用户(除了root),都不能执行at命令。

周期性的计划任务 cron

cron自身是一个不间断运行的程序 周期性的计划任务 分为三种: 系统cron任务,anacron任务,用户cron anacron 任务: 为cron的补充,能够实现让cron因为各种原因在过去的时间该执行而未执行的任务在恢复正常执行一次,适用于经常开机关机的设备,而像大型的服务器大多处于长时间开机的状态,默认下anacron服务处于关闭状态。

以下主要介绍:系统cron以及用户cron

系统的cron

系统的计划任务,顾名思义,只有root管理员才能设定的计划任务,其实普通用户也能设定计划任务只是设定的方法有区别,接下来会介绍到系统的cron,定义在/etc/crontab文件中,包含7个字段,我们来看一下/etc/crontab内的内容

在/etc/crontab中时间的表示方法

时间表示法:
(1) 特定值;
给定时间点有效取值范围内的值
注意:day of week和day of month一般不同时使用;
(2) *
给定时间点上有效取值范围内的所有值;表“每..”
(3) 离散取值:
在时间点上使用逗号分隔的多个值; #,#,#
(4) 连续取值:-
在时间点上使用-连接开头和结束; #-#
(5) 在指定时间点上,定义步长: /#:#即步长;

注意:

(1) 指定的时间点不能被整除时,其意义将不复存在;
(2) 最小时间单位为“分钟”,想完成“秒”级任务,得需要额外借助于其它机制,例如写成脚本;

示例:

这里说明当星期时间和每个月的某天发生冲突时,最终的执行时间为两者的并集

系统自带计划任务命令

系统本身自带的计划任务命令,代替了较为简单的设定,比如每天、每月、每小时等等。

cron 命令 白名单 黑名单

cron也有对应的黑白名单设定文件位置为/etc/cron.deny和/etc/cron.allow,关于黑名单和白名单与at命令的使用是一致的。

用户的cron:

相比系统管理员root设定计划任务来说,用户当然也可以设定自己的计划任务,用户可以通过命令生成任务文件,也可以直接在对应的目录下自己编辑文件(不建议)。

用户创建计划任务的文件位置:/var/spool/cron/USERNAME,如果用户创建了cron任务,在/var/spool/cron/ 下面就会生成一个与用户名一致的临时文件,里面记录了需要执行的计划任务。

crontab命令的格式(两种)

示例:

用户创建计划任务

crontab -u wang -e

查看任务列表

crontab -l

删除所有任务(交互式)

crontab -r -i

这里说明一下:只有root用户才能够指定以哪个普通用户的身份来创建,在创建完成后被指定的用户在/etc/spool/cron/下能够找到与自己用户同名的任务文件。

anacron 计划任务 (cron的补充任务)

前面提到过anacron存在的作用,下面只对其进行简单的介绍,anacron的大致用法与cron差异不大。

anacron 的文件在/etc/anacrontab,我们来看一下

这里说明:开机后系统为了防止存在众多需要执行的计划任务在同一时间执行,影响系统运行速率,便设定了生成随机的开机时间,来解决这个问题

到此为止系统的计划任务已介绍完成,当然还有不足及错误之处,望提出指正。

原创文章,作者:M25_ymd,如若转载,请注明出处:/86236

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

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

友情链接:万达娱乐招商  万达娱乐注册  万达招商  万达娱乐注册  万达娱乐直属  guoqibee.com  万达主管QQ  万达娱乐开户  万达娱乐注册