linux初学者-延迟及定时任务篇
在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初学者-延迟及定时任务篇的更多相关文章
- linux初学者-NFS网络文件系统篇
linux初学者-NFS网络文件系统篇 在上一篇的SAMBA篇中介绍了linux系统和windows系统之间共用的网络文件系统CIFS,主要用于客户端是windows的情况.在linux系统之间,所用 ...
- linux初学者-CIFS网络文件系统篇
linux初学者-CIFS网络文件系统篇 CIFS是一种通用网络文件系统,主要用于网络设备之间的文件共享.CIFS可以在linux系统和windows系统之间共享文件,因此这种文件系统主要用于客户端是 ...
- linux初学者-DNS集群篇
linux初学者-DNS集群篇 DNS服务器一般在使用时,为了缓解服务器的压力,多使用一个主DNS服务器,多个副DNS服务器,这些DNS服务器就组成了一个DNS集群. 在DNS主服务器配置好后,需要另 ...
- linux初学者-磁盘拉伸缩减篇
linux初学者-磁盘拉伸缩减篇 在系统的使用过程中,往往会出现这样的问题,由于刚开始无法估计需要的磁盘空间,导致后期磁盘空间不够,使得数据没地方存储,又或者后期磁盘空间过大,造成资源的浪费.这种在使 ...
- linux初学者-磁盘分区方式篇
linux初学者-磁盘分区方式篇 一般的计算机都会采用mbr分区方式,这种分区方式只能够建立四个主分区,如果还需要或更多的分区,就需要将其中一个主分区建立成一个扩展分区,在里面建立逻辑分区,这些分区信 ...
- linux初学者-普通磁盘分区篇
linux初学者-普通磁盘分区篇 磁盘是计算机的重要组成部分,是记录数据的场所.在使用磁盘时,经常需要对其进行分区来实现不同的用途.下文将介绍在linux系统中普通磁盘分区的方法. "fdi ...
- ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘
本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...
- linux初学者-SElinux篇
linux初学者-SElinux篇 SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统.对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的, ...
- linux初学者-firewall篇
linux初学者-firewall篇 firewalld是防火墙的另一种程序,与iptables相同,但是使用起来要比iptables简单的点,不需要了解3张表和5条链也可以使用. 1.firewa ...
随机推荐
- ab fails to connect to localhost
The following command fails: $ ab -n 1 localhost:8000/ ... Benchmarking localhost (be patient)...apr ...
- kafka笔记4
应用程序使用KafkaConsumer向Kafka订阅主题,并从订阅的主题上接收消息.Kafka消费者从属于消费者群组,一个群组里的消费者订阅的是同一个主题,每个消费者接收主题的一部分分区的消息. 一 ...
- 30211Java_类
类 类:我们叫做class. 对象:叫做Object,instance(实例).某个类的对象,某个类的实例.是一样的意思.1.对象是具体的事物;类是对对象的抽象;2.类可以看成一类对象的模板,对象可以 ...
- 进程以及进程通信(IPC)类型
这里用我有限的知识来解释同时参考了一些其他博主的子类,希望能给与一部分入门的朋友一个清晰的理解,有问题之处还请指出 首先简单谈一下什么是进程? 答:进程是装入内存运行的程序段,是许多的系统对象拥有权的 ...
- spring 5.x 系列第14篇 —— 整合RabbitMQ (代码配置方式)
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 本用例关于rabbitmq的整合提供简单消 ...
- 【Netty整理02-详细使用】Netty入门
重新整理版:https://blog.csdn.net/the_fool_/article/details/83002152 参考资料: 官方文档:http://netty.io/wiki/user- ...
- Java 自定义异常(转载)
1.异常的分类 1. 非运行时异常(Checked Exception) Java中凡是继承自Exception但不是继承自RuntimeException的类都是非运行时异常. 2. 运行时异常(R ...
- a元素变成块状元素点击之后删除出现背景
a { text-decoration: none; background: none; -webkit-tap-highlight-color: transparent; } a:hover { - ...
- Java基础介绍运行机制笔记
1. 基础知识点图解 编程语言核心结构:变量.基本语法.分支.循环.数组.…… Java面向对象的核心逻辑:OOP.封装.继承.多态.接口…… 开发Java SE高级应用程序:异常.集合.I/O.多线 ...
- HDU 1561:The more, The Better(有依赖的树型背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1561 题意:有n个点,容量为m,每个点有一个价值,还给出n条边,代表选第i个点之前必须先选ai,问最多的价值能取 ...