前言 :
系统的延迟和定时机制其实用生活中的一个例子就能诠释,就是我们的闹钟,每天早上叫醒我们的闹钟,我们通常会定一个闹钟,这个动作就是系统中的定时机制,也就是定时任务,这是一次性的,响一次就不响了,但是我们经常起不来,又想睡一会,又怕睡过,这时设定一个5分钟后再响,这个动作就是延迟,延迟这个动作是可以重复的。
一.定时任务
1. at 命令
指定某一任务在将来的特定时间运行。该作业可能是一次备份、对系统的检查或者特定时间发送的通知。使用at 命令将任务设置在一分钟或两分钟之后运行。然后便可以安全注销,因为该任务会 在与shell 会话断开连接的情况下运行。
2.使用方法
at 命令必须指定任务应运行的时间。该指定可以是具体时间和 / 或日 期 (例如星期一 , 10:00pm 或 7 月 15 日 )。也可以是当前时间的相对时间 ( 现在时间加上 5 分钟 , 现在时间加上 3 天或 4:00pm 加上 1 周 )通过添加其他选项 ,您可以在任务完成是发送邮件 ( -m ),或者从 文件中读取任务 ( -f 文件 )。
在键入 at 命令行之后 , 按 Enter 并继续键入作业中包含的其他命令。 任务可由多个命令组成。在完成键入要运行的命令时 ,在单独出现的一 行中按 Ctrl+d 完成任务
示例:
两分钟后删除/mnt里面的file文件:
at -l ###查看当时定时任务的列表
atrm jobid ###删除任务号为jobid的定时任务
*这里说一种特例,使用at命令时,有效果的能显现出来,如删除文件,创建文件等,但是如果是没有效果的,系统会发邮件给创建定时任务的用户:
3.黑白名单
有时候,为了限制某些用户使用这个功能,我们可以添加黑/白名单来实现。
1.黑名单
vim /etc/at.deny ###配置定时任务黑名单
配置完,我们切换到用户qiao,并且尝试创建定时任务:
我们发现用户qiao是不可以创建定时任务的,也就是说,黑名单生效了。
2.白名单
白名单的力度更大,只有出现在名单上的用户才能创建定时任务,而且/etc/原本是没有白名单的,需要我们创建,而且白名单一旦创立,黑名单就会失效。
下面我们来编辑/etc/at.allow:
这时候黑名单还是存在的,我们切换用户qiao,并试着创建定时任务:
证实了一旦设置白名单,黑名单就会失效。
二.延迟任务
1.延迟任务的设定
cron 设备管理必须按计划定期重复运行的程序。后台程序 crond 每分钟唤醒一次 , 以运行计划的任何任务用户使用 crontab 命令计划个人任务。系统管理员可以在系统范围 配置文件中设置任务
参数 | 含义 |
---|---|
crontab -l | 列出文件 |
crontab -r | 删除文件 |
crontab -e | 编辑文件 |
1* 2* 3* 4* 5* command
–1*———-分钟
–2*———-小时
–3*———-天
–4*———-月
–5*———-周
crontab -e -u root ###进入设定延迟任务
每两分钟删除/mnt 目录下所有的东西
crontab 产生的配置文件在/var/spool/ 目录下:
属于系统的任务通常保存在 /etc/crontab 文件中而不是使 用 crontab -e 编辑保存在个人文件中。更好的做法是用文 本编辑器创建 crontab 文件并保存到 /etc/cron.d 中 (避 免更新系统软件包 cronie 时出现问题 ) 。 /etc/cron.d/crontab 文件在日期说明后另加一个字段 ,表 示将运行作业的用户 。
对于需要每天、每周或每月运行一次的脚本 ,可以直接将其 设置为可执行文件 , 并保存在 /etc/cron. {daily,weekly,monthly} 中相应目录下。这些任务由 /etc/anacrontab 配置的系统 anacron 服务运行 anacron 是 cron 的集成组件 ,用于更好地管理作业 ,并确保在作业 因计算机关闭而未运行的情况下 ,在系统引导后运行
推荐使用非交互式编写配置文件:
删除指定任务:
配置文件的话就在文件里面删除就行。
2.cron权限设定
和at一样,也是有黑白名单,而且道理是一样的,这里就不再细说。
• 用户黑名单
/etc/cron.deny
• 用户白名单
/etc/cron.allow
———————–end————————
今天就到这里,欢迎大家一起讨论