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 ...
随机推荐
- 文件文件夹混合多选对话框(修改GWL_WNDPROC)
/******************************************************************** created: 2008/07/22 created: 2 ...
- python常用数据结构(2)
1.有名字的元组——namedtuple >>> from collections import namedtuple >>> Point = namedtuple ...
- Dynamics 365中的事件框架与事件执行管道(Event execution pipeline)
本文介绍了Microsoft Dynamics 365(以下简称D365)中的两个概念,事件框架(Event Framework)与事件执行管道(Event execution pipeline). ...
- 一道关于String的面试题,新鲜出炉,刚被坑过,趁热!!
很多人都会答错的一道关于String的题目,究竟有什么难度? 我们一起来看一道关于String的面试题,准确说是改编的面试题! 准备好啦?在放大招之前先来一个小招式 String s1 = new S ...
- 手动安装gitlab-runner
手动安装gitlab-runner 在终端使用命令curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runn ...
- 恢复云数据库MySQL的备份文件到自建数据库遇到的报错
报错信息 : 恢复云数据库MySQL的备份文件到自建数据库,自建数据库版本5.6.36. 按照阿里云文档操作,启动数据库报错 -- :: [ERROR] /application/mysql/bin/ ...
- 设计模式-工厂方法模式(FactoryMethod)
工厂方法模式又称多态工厂模式.工厂方法模式是定义一个创建产品对象的接口(FruitFactory),将具体创建工作给具体的实现类(AppFactory,BananaFactory,PearFactor ...
- 常用的URL Scheme
系统 短信 sms:// app store itms-apps:// 电话 tel:// 备忘录 mobilenotes:// 设置 prefs:root=SETTING E-Mail MESSAG ...
- HDU 2298:Toxophily(推公式)
http://acm.hdu.edu.cn/showproblem.php?pid=2298 题意:给出一个x,y,v,问从(0,0)以v为初速度射箭,能否射到(x,y)这个点,如果能,输出最小的射出 ...
- 【Mysql】索引简介
本文口味:番茄炒蛋,预计阅读:10分钟. 博客又停更了两个月,在这期间,对人生和世界多了许多思考.在人生的不同阶段,会对生活和世界有着不一样的认知,而认知的改变也会直接反应在行为模式之中. 对于生活的 ...