首页 >> 大全

Linux系统中的定时任务及延时任务详解

2023-08-06 大全 27 作者:考证青年

Linux系统中的定时任务及延时任务 1、系统延时任务

at 23:37/now+1min 		##设定任务执行时间/延时1分钟
at> rm -fr /mnt/* 		##任务动作
at> <EOT> << CTRL +D 	##用ctrl+D发起任务at -l 					##查看任务列表
at -c 任务号 			##查看任务内容
at -r 任务号 			##取消任务执行

实验步骤:

1)设定在5:56时在/mnt目录下建立文件,通过watch -n 1 ls -lR /mnt进行监控,可以看到延时任务执行

2)设定延时1分钟清空/mnt目录下所有文件

3)注意: 当延时任务有输出时,输出会以邮件的形式发送给at任务的发起者,为了看到发送的邮件,我们需要用到提供邮件发送服务的和提供邮件查看服务mailx,配置虚拟机的软件源指向文件(这里使用真实主机中的软件仓库),安装和mailx,启动服务

4)设定延时任务输出hello yao ,mail -u root查看超级用户邮件,可以看到超级用户接收到的定时任务发送来的邮件,邮件内容为hello yao,清空邮件(& 1表示查看第一封邮件;& q表示退出)

2、at任务的黑白名单

at任务的黑名单/etc/at.deny : 系统中默认存在,在此文件中出现的用户不能执行at命令

at任务的白名单/etc/at.allow: 系统中默认不存在,当该文件出现,普通用户不能执行at命令,只有在名单中的用户和超级用户可以执行at命令,并且黑名单/etc/at.deny失效

实验步骤:

1)添加普通用户lee, 切换到lee、用户分别执行at命令,此时lee和用户都可以执行

2)编辑at任务的黑名单/etc/at.deny ,在其中添加用户lee, 切换到lee,此时lee不能执行at命令

3)查看at任务的白名单/etc/at.allow,显示系统中不存在该文件,建立并编写该文件,在其中添加用户lee, 切换到lee,此时lee可以执行at命令,黑名单/etc/at.deny失效;超级用户也可以执行at命令;再切换到不在该名单内的普通用户,不能执行at命令

3、系统定时任务

_linux延时执行命令

a)定时任务服务

系统中控制定时任务的服务为crond. ,当这一服务开启时定时任务生效,系统中某用户设定的定时任务都保存在/var/spool/cron/这一任务保存文件中。

b) 时间表示方式

定时任务保存文件/var/spool/cron/中, 时间表示方式如下:

* * * * * 					##每分钟
*/2 * * * * 				##每两分钟
*/2 09-17 * * * 			##早7-晚5点内每两分钟
*/2 */2 * * * 				##每隔2小时每两分钟
*/2 09-17 3,5 1 5 			##1月份3号和5号,每周周五,早9-晚5点,每两分钟 
*/2 09-17 * * 5 			##每周周五早9-晚5点每两分钟

c) 命令

crontab -e -u				##建立指定用户的定时任务
crontab -l -u				##列出指定用户的定时任务列表
crontab -r -u				##取消指定用户的定时任务执行

实验步骤:

1)建立超级用户的定时任务,在/mnt目录下建立文件,通过watch -n 1 ls -lR /mnt进行监控,可以看到定时任务执行

2)注意: 和延时任务一样,当定时任务有输出时,输出会以邮件的形式发送给的发起者

在真正执行延时 / 定时任务的时候,系统每执行一次就会发送一次邮件,这显然是不合理的,而且会浪费系统存储空间,我们可以通过以下两种方法避免接收邮件:

方法一:屏蔽定时任务的输出

在定时任务中将输出直接放入垃圾箱,此时的发起者不会接收到邮件

方法二:关闭邮件发送功能

编辑/etc//crond配置文件,进行如下图所示设定,关闭邮件发送功能,查看邮件,重启定时任务服务crond.后再次查看邮件,邮件数量不变,即的发起者不会接收到有输出的定时任务发送的邮件

4、系统级别的cron(文件方式设定定时任务)

上述命令是用户级别的定时任务设置方式,我们还可以通过在自定义定时任务目录/etc/cron.d/下编写文件,以文件方式设定系统级别的定时任务。文件内容编写格式示例如下:

* * * * * username  action
* * * * *   root    rm -fr /mnt/*

_linux延时执行命令

实验步骤:

1)在/etc/cron.d/目录下编写系统级别的定时任务文件(文件名称任意),设定每分钟删除/mnt目录下所有文件的定时任务,通过watch -n 1 ls -lR /mnt进行监控,可以看到定时任务执行

2)查看定时任务服务crond.的状态,在/mnt目录下新建文件,可以通过命令查看定时任务是否漏执行,可以看到定时任务成功执行,/mnt目录下文件被清空

5、的黑白名单

的黑名单/etc/cron.deny: 系统中默认存在,在此文件中出现的用户不能执行

的白名单/etc/cron.allow: 系统中默认不存在,当文件出现,普通用户不能执行,只有在名单中的用户可以执行,并且黑名单/etc/cron.deny失效

注意: 这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行

实验步骤:

1)编辑的黑名单/etc/cron.deny ,在其中添加用户lee, 切换到lee,此时lee不能执行;切换到不在黑名单中的普通用户,此时可以执行

2)查看的白名单/etc/cron.allow,显示系统中不存在该文件,建立并编写该文件,在其中添加用户lee, 切换到lee,此时lee可以执行,黑名单/etc/cron.deny失效;超级用户也可以执行;再切换到不在该名单内的普通用户,不能执行

6、系统临时文件的管理方式

系统临时文件是指在系统执行程序的过程中需要使用、程序运行完成后不需要保存应该被清理的文件,我们可以通过在临时文件配置目录/usr/lib/.d/中编写配置文件,结合-命令清理系统中的临时文件。

实验步骤:

1)在临时文件配置目录/lib/.d/下编写配置文件.conf,- --使得配置文件.conf生效,即在/mnt中建立一个存放临时文件的目录,该目录下的临时文件建立完成8秒后可以被清理

2)在/mnt/目录下创建临时文件,8秒后- --clean即可清理这些临时文件,我们可以将- --和- --clean写入定时任务里,这样系统就能够自动执行清理临时文件的任务

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了