Linux教程

linux中的定时任务及延时任务

本文主要是介绍linux中的定时任务及延时任务,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.延时任务

(1)延时任务使用命令

at  -l                              ##查看任务列表

at  -c  “任务号”            ##查看任务内容

at  -r  “任务号”             ##取消执行任务

***当延时任务有输出时,输出会以邮件的方式发送给at任务的发起者用户。

***查看邮件需要安装postfix(邮件发送服务)和mailx(邮件查看服务)。

查看邮件:

mail  -u  “用户名”

(2)at任务的黑白名单

黑名单文件:/etc/at.deny

白名单文件:/etc/at.allow

***黑名单文件系统中是默认存在的,此文件中存在的用户不能执行at;白名单文件系统中默认不存在,但白名单文件生成后,只有文件中存在的用户和超级用户(root)才可执行at,并且/etc/at.deny此文件失效。

2.定时任务

(1)定时任务所用到的服务---crond.service ;crond.service 服务开启时定时任务才会生效,系统中用户设定的定时任务都保存在文件 /var/spool/cron/username 中。

(2)定时任务使用命令

crontab  -e  -u  "username"                ##指定用户建立定时任务

crontab  -l  -u  "username"                ##查看指定用户的定时任务列表

crontab  -r  -u  "username"                ##取消执行指定用户的定时任务

***同延时任务,定时任务的输出会以邮件的方式发送给crontab任务的发起者用户。

(3)crontab的时间表示方式

*  *  *  *  *                ##每分钟(格式为:分 时 天 月 周)

*/2  *  *  *  *                ##每天隔2分钟执行一次(/表示时间间隔)

*/2  09-17  *  *  *                ##每天的9-17点时间段内每隔两分钟执行一次

*/2  */2  *  *  *                        ##每隔2小时执行且执行的时候每隔2分钟执行一次

*/2  09-17  3,5  1  5                ##1月的3日和5日及每周周五的9-17的时间段内每隔两分钟执行一次

*/2  09-17  *  *  5                        ##每周五9-17点时间段内每隔2分钟执行一次

(4)crontab的黑白名单

黑名单文件:/etc/cron.deny

白名单文件:/etc/cron.allow

***描述同at的黑白名单

!!!需要注意的是:这两个名单都不会影响到/etc/cron.d下的文件内的定时任务的执行!!!

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

crontab命令是用户级别的定时任务设置方式;系统操作者还可以在/etc/cron.d目录下编写配置文件以设置系统级别的定时任务。

vim  /etc/cron.d/"文件名"

格式为:*  *  *  *  *        username        action

内容为:*  *  *  *  *        root                   rm -fr /mnt/*

屏蔽邮件(定时任务输出)的3种方式

系统每执行一次定时/延时任务就会发送一次邮件,这样会浪费系统存储空间,可用通过以下3种方式屏蔽/拒收邮件

一.屏蔽任务输出

在编写定时任务配置文件时在行末添加 &>  /dev/null(无限数据接收设备=黑洞)        ##重定向所有输出至垃圾站

二.关闭邮件发送功能

编辑/etc/sysconfig/crond配置文件,将文件中使用参数 -m off关闭邮件发送

三.将邮件发送对象撤除

编辑/etc/crontab配置文件,将文件中MAILTO=后的对象改为空

!!!此文件在系统启动时会自动读取,如需查看实验效果则需重启系统!!!

3.系统中临时文件的管理

系统临时文件是指系统在执行程序过程中需要使用和程序运行完成后不需要保存而应当被清理的文件。临时文件存放地址为/tmp。

在临时文件管理配置目录/usr/lib/tmpfiles.d/中编写配置文件“文件名.conf”

编辑内容:

d        /mnt/westos        1775        root        root        10s

管理命令:systemd-tmpfiles

systemd-tmpfiles  --create  /usr/lib/tmpfiles.d/"文件名.conf"                ##使配置文件(.conf结尾)生效

systemd-tmpfiles  --clean  /usr/lib/tmpfiles.d/"文件名.conf"                ##清理配置文件中目录下的临时文件

***可以将systemd-tmpfiles  --create和systemd-tmpfiles  --clean写入/etc/cron.d(系统级定时任务的配置文件目录)下的文件中使得系统能够自动执行清理临时文件的定时任务。

这篇关于linux中的定时任务及延时任务的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!