在linux系统的学习工作中,南面会遇到需要延迟进行的任务和需要定时去完成的任务,就像手机的闹钟一样,这时候就需要用到linux系统当中的系统延迟和定时任务的设置了,下文将对延迟和定时任务的设置和使用进行一些介绍。

1、系统延迟任务

系统延迟任务是系统任务将在规定的时间或者在一定时间之后才进行的任务设置,和定时任务不同,这种命令发起的任务都是一次性的。

一般发起延迟任务的命令是"at",例如下图,在目录"/mnt"下有6个文件,需要延迟清空这个目录,则输入"at 时间"按回车后输入"rm -fr /mnt/*",任务输入完成后按"ctrl+d"来完成命令。由图可以看出,在设定的时间之后完成了这个命令。

"at"命令还可以加入一些参数来实现不同的功能,常用的参数例如:

输入"atq"或者"at -l"可以查看已经设置好的延迟任务。

输入"atrm 任务编号"或者"at -d 任务编号"可以删除所设置的延迟任务。

还有一些其他的参数例如,输入"at -c 任务编号"可以查看延迟任务所要执行的命令内容。

"at now+xmin"可以设置命令在延迟x分钟之后进行。"at -f 文件"可以延迟执行文件中的命令内容。例如在文件中写入"mkdir /mnt/test",并在一分钟之后执行。

在使用"at"命令时,会发现不管是普通用户还是超级用户,都可以对主机发起延迟命令,如下图所示,然而在有些情况下,需要对延迟命令的执行权限进行限定。

在对延迟命令的执行权限进行限定是有两种情况,一种是不允许一些用户执行延迟命令,一种是只允许一些用户执行延迟命令,这时就需要用到命令执行的黑名单和白名单。

命令执行的黑名单就是不允许一些用户执行,这需要将用户的名称编写在文件"/etc/at.deny"下,例如下图,将student用户的名称写入这个文件中,则student用户无法再执行延迟命令。但是没有在文件中tom用户不受影响。

命令执行的白名单自然就是允许一些用户执行延迟命令了,值得注意的是,在系统中,这个白名单文件并不存在,需要自己建立建立一个"/etc/ra.allow"文件,这个文件一旦出现,那么所有用户将不能再执行延迟命令,例如下图,文件建立后,没有再黑名单中的tom用户也不能执行延迟命令了。在这个文件中写入"student",那么student用户可以使用延迟命令。

2、定时任务

定时任务就和闹钟类似,是永久存在的,可以循环执行的。定时任务的程序crond,在系统中每分钟做扫描。

一般linux系统中定时任务的发起方式有两种。

2.1、第一种发起方式是通过命令来实现的。常用的命令及其参数有三种,"crontab -u username -e"表示设置一个定时任务,以username的身份运行,"crontab -u username -l"表示查看设置的定时任务,"crontab -u username -r"表示删除设置的定时任务。例如下图,设置一个在"22:30分"执行一个"touch /mnt/file{1..5}"的任务,查看并且删除这个定时任务。

2.2、第二种发起方式是通过编辑文件来实现的。在文件"/etc/cron.d/filename"中编写命令,例如在此文件中输入命令"* * * * * root touch /mnt/root{1..5}"和"* * * * * tom touch /mnt/tom{1..5}"。

2.3、定时任务的执行权力设定。与延迟任务的执行权力设定类似,定时任务执行权力的黑名单设定是编写"/etc/cron.deny"文件,白名单设定是编写"/etc/cron.allow"文件,白名单文件同样是不存在的,需要自己建立。

2.4 设置任务时的时间格式。在上文中可以看出,在设置定时任务时需要设置时间,上文都是"* * * * *",时间的格式是:

*             *            *            *           *

分          时          天         月         周

常用的时间格式和意义是:

* * * * *                        每隔一分钟

* * */2 * *                     每隔两天

* 08-17/2 * * *             早上八点到下午五点每隔两小时

* * 01,15 * 6                每个月的1号,15号以及星期六

05 * * * *                       每小时正点过五分钟

05 02 * * *                    每天早上2点05分

0 08 01 * *                   每个月一号早上8点30分

00 07 25 12 *              12月25日早上7点00分

30 16 * * 5                    每个星期五16点30分

*/5 * * * *                       每隔五分钟

*/10 9-17 1,15 * *         每个月的1号和15号9点到17点每隔10分钟(17点不会运行)

0 0 1 jan 0                   1月1日的0点0分和1月的每个月星期日(不仅是1月1日所在的星期日)

3、系统临时文件的管理

系统在使用服务是,会产生临时文件,这些文件在服务使用完成后或者一段时间后就没有用了,这时就需要对系统产生的临时文件进行管理,及时清除不必要的文件。

在清理文件时,需要先进行设置文件的存在于系统的时间,设置是通过编写"/usr/lib/tmpfiles.d/*.conf"文件来实现的,其中"*"是文件的名称,可以自行设置,但是必须以".conf"结尾。例如在此文件中写入"d /mnt/we 1777 root root 10s",其中"d"是文件类型,"/mnt/we"是清理目录,"1777"是执行权限,"root"和"root"是文件所有人和文件所有组,"10s"是文件存在时间,结合起来,上述内容表示"在/mnt目录下有一个所有人和所有组都是root并且权限为1777的目录we,该目录内的文件可以存在的时间为10s"。这个we目录在系统中是不存在的。

使用"systemd-tmpfiles --create /usr/lib/tmpfiles.d/we.conf",可以建立临时文件目录。"systemd-tmpfiles --clean /usr/lib/tmpfiles.d/we.conf",可以清理该目录下的临时文件。值得注意的是,只有文件存在期限过了的文件可以被清理。例如下图所示,在建立了文件之后,只有过了10s才可以被清理。

上述的系统临时文件管理清理命令需要自己输入,可以和定时任务结合使用,使得自动清理临时文件。例如需要在"/mnt"下建立一个"quit"目录,其中的文件可以存在2min,但是系统将每分钟清理一次这个目录。为了方便,这些步骤可以用脚本来完成,如下图所示。输入"watch -n 1 ls -Rl /mnt"来观察这个目录的变化。

在使用脚本文件后"/mnt"目录下会出现一个"quit"目录,在"4:49:53"在"quit"目录下建立5个文件,这五个文件在"4:52:02"全部被清理。

以上就是linux中常用的延迟任务、定时任务和系统临时文件的管理,及其一点应用。

linux初学者-延迟及定时任务篇的更多相关文章

  1. linux初学者-NFS网络文件系统篇

    linux初学者-NFS网络文件系统篇 在上一篇的SAMBA篇中介绍了linux系统和windows系统之间共用的网络文件系统CIFS,主要用于客户端是windows的情况.在linux系统之间,所用 ...

  2. linux初学者-CIFS网络文件系统篇

    linux初学者-CIFS网络文件系统篇 CIFS是一种通用网络文件系统,主要用于网络设备之间的文件共享.CIFS可以在linux系统和windows系统之间共享文件,因此这种文件系统主要用于客户端是 ...

  3. linux初学者-DNS集群篇

    linux初学者-DNS集群篇 DNS服务器一般在使用时,为了缓解服务器的压力,多使用一个主DNS服务器,多个副DNS服务器,这些DNS服务器就组成了一个DNS集群. 在DNS主服务器配置好后,需要另 ...

  4. linux初学者-磁盘拉伸缩减篇

    linux初学者-磁盘拉伸缩减篇 在系统的使用过程中,往往会出现这样的问题,由于刚开始无法估计需要的磁盘空间,导致后期磁盘空间不够,使得数据没地方存储,又或者后期磁盘空间过大,造成资源的浪费.这种在使 ...

  5. linux初学者-磁盘分区方式篇

    linux初学者-磁盘分区方式篇 一般的计算机都会采用mbr分区方式,这种分区方式只能够建立四个主分区,如果还需要或更多的分区,就需要将其中一个主分区建立成一个扩展分区,在里面建立逻辑分区,这些分区信 ...

  6. linux初学者-普通磁盘分区篇

    linux初学者-普通磁盘分区篇 磁盘是计算机的重要组成部分,是记录数据的场所.在使用磁盘时,经常需要对其进行分区来实现不同的用途.下文将介绍在linux系统中普通磁盘分区的方法. "fdi ...

  7. ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘

    本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...

  8. linux初学者-SElinux篇

    linux初学者-SElinux篇 SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统.对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的, ...

  9. linux初学者-firewall篇

     linux初学者-firewall篇 firewalld是防火墙的另一种程序,与iptables相同,但是使用起来要比iptables简单的点,不需要了解3张表和5条链也可以使用. 1.firewa ...

随机推荐

  1. HTML连载10-details标签&summary标签&marquee标签

    ​1.详情(details)与概要(summary)标签 (1)作用:我们希望用尽可能少的空间来表达更多的信息,利用summary标签来描述概要信息,用details标签来描述详情信息 (2)格式: ...

  2. Python-基本数据类型(list,tuple)

    一. 列列表 1.1   列列表的介绍 列表是python的基础数据类型之⼀一,其他编程语言也有类似的数据类型. 比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用' , ...

  3. 纯异步nodejs文件夹(目录)复制

    思路: 1.callback 驱动 2.递归所有需要复制文件 3.在一定阀值下并发复制文件 4.运行需要安装 async.js     npm install async 代码如下: var asyn ...

  4. vuex分模块

    Vuex速学篇:(4)把我们的业务按模块分类 原创 2016年11月29日 10:45:38 8504 文档:http://vuex.vuejs.org/zh-cn/modules.html 这个mo ...

  5. css之rem布局

    rem介绍和原理网上都是,这里不具体介绍 以iphone6设计稿 let htmlWidth = document.documentElement.clientWidth || document.bo ...

  6. 最牛MongoDB灾难恢复(WiredTiger.wt文件损坏,Mongo无法启动)

    WiredTiger.wt文件是mongoDB的元数据文件,存储了其他数据库表的元数据信息.笔者最近遇到了WiredTiger.wt文件损坏的情况,MongoDB无法启动,数据库中的重要数据危在旦夕. ...

  7. 数据库root密码删除

    1 打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址   2 打开cmd命令提示符,进入上一步mysql.exe所在的文件夹.   3 输入命令  mysqld --skip-g ...

  8. RABC权限控制(页面操作角色,权限和进行分配)

    上一节主要说的是如何通过url进行权限控制,这一节就说一下如何开发一个权限控制的界面,这样我们就能很方便的创建角色,并分配给用户不同角色和不同权限. 1.编写角色管理页面 这个编写较为简单,主要是通过 ...

  9. Jrebel激活服务搭建

    前言 因为平时的开发工具是使用IntelliJ IDEA,所以热部署项目代码的时候,使用的Jrebel.因为Jrebel是收费的,所以以前用的时候都是在网上找破解方法(国人通用做法),在网上找到的办法 ...

  10. 查询IP地址的免费API

    1.百度 1.http://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=192.168.0.0&co=&resource_ ...