Linux学习笔记—系统定时和延迟任务_Hannah_zh的博客-程序员宅基地

技术标签: at  Linux  系统延时和定时任务  crontab  

一、延迟任务

系统延时任务是通过at命令实现的,负责这个延时任务的服务是atd服务,通常这个服务默认是开启的,但并非所有的linux发行版都会默认把它打开。某些时候我们需要手动启用才行 (/etc/init.d/atd start)。

延迟任务是临时的,不重复的。
当延迟任务有输出时,输出会以邮件的形式发送给任务发起人。
  • 邮件用mail去查看
  • mail 文件内容存储在 /var/spool/mail/root
  • q:退出mail邮件
> /var/spool/mail/root      ##清空邮件内容

注意:rm(删除)没有输出,mail中不显示

1、at命令

命令格式:
at[参数][时间]

命令功能: 在一个指定的时间执行一个指定任务,其发起的延时任务都是一次性的。其中,快捷键‘Ctrl+D‘执行命令。
命令参数:

at -l | atq           ##查看当前任务
at -r                 ##取消指定时间的任务
at -c 任务编号         ##查看任务内容
at now+1min           ##延迟1分钟执行任务
at -f file            ##延迟执行文件中的内容    
at -m                 ##延迟命令没有输出时,仍然发送邮件给执行者
at -M                 ##延迟命令有输出时,不发送邮件给执行者
atrm 任务编号 | at -d  ##取消相应的任务
实例1:9:59执行删除 /mnt/ 下的所有文件

执行任务前:
定时任务
执行任务后:
定时任务

实例2:查看当前任务,当前任务号:1

at -l 命令

实例3:清除任务号为4的任务

at -r 命令

实例4:mail命令的使用
[root@server16 ~]# mail                      ##邮件方式将已执行的任务发送给root用户
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 3 messages 3 new
>N  1 [email protected]  Fri Jan 19 16:41 108/4834  "[abrt] initial-setup-"
 N  2 [email protected]  Sat Jan 20 11:36 1397/67472 "[abrt] cheese: chees"
 N  3 root                  Sun Jan 21 15:06  14/500   "Output from your job "
& q          ##q表示退出,&后也可接任务号,显示该任务的详细信息
Held 3 messages in /var/spool/mail/root
You have mail in /var/spool/mail/root
[root@server16 ~]# > /var/spool/mail/root    ##清空邮件
[root@server16 ~]# mail     
No mail for root
实例5:取消相应任务

这里写图片描述

2、at 命令执行权力设定

配置文件:

/etc/at.deny    ##用户黑名单,在此名单中出现的用户不能执行at命令
/etc/at.allow   ##用户白名单,系统默认不存在,但名单一旦出现,黑名单失效
			    ##系统所有用户默认不能执行at,只有在名单中出现的用户可以使用at命令

注意: 系统黑名单和白名单都不限制超级用户

实例1:使用用户黑名单,使普通用户student不能执行at命令

用户黑名单
使用黑名单前,普通用户student可以正常使用at命令;将普通用户student加入黑名单后,其不能正确使用at命令。

实例2:创建用户白名单,使得student白名单用户可以执行at命令,westos不能执行命令

用户白名单
这里写图片描述

二、定时任务

延时任务只能执行一次,对任务进行一次调度。但是如果我们想要循环调度某个工作,定时任务使用crontab命令。

  • 定时任务crontab之所以可以发起永久定时任务,由于crond服务监控定时任务,每分钟做任务扫描。
注意:在发起定时任务前,保证crond服务处于active状态
  • 通过crontab 命令,可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。
1、限制能够使用crontab的用户
/etc/cron.deny       ##用户黑名单,在此名单的用户不能执行crontab命令
/etc/cron.allow      ##用户白名单,名单默认不存在,但名单一出现,黑名单失效,系统所有用户默认不能执行crontab,只有在白名单中

/etc/cron.allow 比 /etc/cron.deny优先级高,这两个文件只选择一个来限制,因此只需要保留一个即可,一般情况下系统默认保留/etc/cron.deny.

2、cron的工作过程

当用户使用crontab命令新建工作调度之后,该项工作会被记录到/etc/spool/cron/目录下,以帐号作为区别,例如:www这个用户使用crontab后,他的工作就会被记录到/var/spool/cron/www里边去。cron执行的每一项工作都会被记录到/var/log/cron这个日志文件当中。所以查看linux是否植入木马,也可以查询一下/var/log/cron日志文件。

3、crontab 命令的时间表示方式
分钟     小时      天      月      周
 *        *        *       *       *    ##每分钟                
*/2      *        *       *       *    ##每两分钟                  
 *      08-17      *       *       *    ## 每天早上8点-下午5点每分钟                 
 *      08-17     1,15    *       *    ##每月1号和15号的早上8点-下午5点每分钟                
 *      08-17     1,15    3       *    ##三月1号和15号的早上8点-下午5点每分钟                 
 *      08-17     1,15    3       5    ##三月1号和15号以及每周五的早上8点-下午5点每分钟                 

4、定时任务分为系统级和用户级

* 用户级发起方式

发起方式一:
1)命令格式

crontab -e              ##编辑当前用户的定时任务
crontab -r              ##取消当前用户的所有定时任务
crontab -l              ##查看当前用户的所有定时任务
crontab -e -u username  ##编辑username的定时任务
crontab -r -u username  ##取消username的所有定时任务
crontab -l -u username  ##查看username的所有定时任务

2)文件内容:

* * * * * 动作          ##分 时 天 月 周 + 动作

实例:
这里写图片描述
注意:

/var/spool/cron/username    ##编辑该文件,永久定时任务,实质所有定时任务存储在该文件中
ls /var/spool/cron          ##查看当前定时任务的发起人 

这里写图片描述

若删除/var/spool/cron/username,则删除当前username的定时任务

这里写图片描述

发起方式二:文件格式

vim /etc/cron.d/filename              ##配置文件

文件格式:

分   时   日   月   星期   用户   命令

*    *    *    *    *    root   rm -fr /mnt/*     ##超级用户每分钟清理一次/mnt下的文件      

第1列分钟0~59
第2列小时0~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~7(0和7表示星期天)
第6列要运行的命令

实例:普通用户student每分钟在/mnt下建立10个文本文件,超级用户每5分钟清除一次/mnt下的文件
方法一:交互式(vim编辑文件)
[root@server16 cron.d]# vim westos
[root@server16 cron.d]# rm -fr /mnt/*
[root@server16 cron.d]# chmod 777 /mnt    ##加权限,使得普通用户也可访问

配置文件 /etc/cron.d/westos
配置文件内容

方法二:非交互式(用于批量主机任务)
[root@server16 cron.d]# chmod 777 /mnt    ##加权限,使得普通用户也可访问
[root@server16 cron.d]# > westos 
[root@server16 cron.d]# echo "* * * * * root rm -fr /mnt/*"
 * * * * * root rm -fr /mnt/*
[root@server16 cron.d]# echo "* * * * * root rm -fr /mnt/*" >/etc/cron.d/westos

注意:echo命令说明

[root@localhost ~]# echo student date ##将其后的字符串输出
student date
echo "* * * * * student date"    ##引号原因,*为特殊字符

* 系统级发起方式

注意:系统级的定时文件不能用crontab -l(用户级)查看
cron.d/##用户自定义文件       
cron.daily/##系统每天执行一次   
cron.hourly/##系统每小时执行一次  
cron.monthly/ ##系统每月执行一次 
cron.weekly/##系统每周执行一次

三、系统临时文件的管理

系统中服务在正常运行时会产生临时文件,在系统中 /usr/lib/tmpfiles.d/ 标实服务的临时文件存放位置。

systemd-tmpfiles     ##系统初始化程序

配置文件

/urs/lib/tmpfiles.d/xxx.conf   ##系统临时文件的配置                    
systemd-tmpfiles --create /usr/lib/tmpfiles.d/*	 ##执行临时文件配置
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*	 ##清里临时文件

文件格式:

/urs/lib/tmpfiles.d/xxx.conf 
文件类型   文件名称    文件权限   文件所有人    文件所有组    文件存在时间
d       /mnt/westos  777         root        root            10s
实例:设定8s清空内存文件
[root@localhost ~]# cd /usr/lib/tmpfiles.d/
[root@localhost tmpfiles.d]# ls
abrt.conf                 lvm2.conf            spice-vdagentd.conf
cups.conf                 mdadm.conf           subscription-manager.conf
cups-lp.conf              pam.conf             systemd.conf
gvfsd-fuse-tmpfiles.conf  ppp.conf             systemd-nologin.conf
initscripts.conf          rpm.conf             tmp.conf
iscsi.conf                samba.conf           x11.conf
legacy.conf               saslauthd.conf
libselinux.conf           selinux-policy.conf
[root@localhost tmpfiles.d]# vim westos.conf  ##建立.conf文件

d /mnt/tmp 1777 root root 8s                  ##文件内容

[root@localhost mnt]# systemd-tmpfiles --create /usr/lib/tmpfiles.d/*    ##执行临时文件配置
[root@localhost mnt]# ls                     
tmp                      ##生成tmp文件
[root@localhost mnt]# ll
total 0
drwxrwxrwt 2 root root 6 Apr 13 01:28 tmp
[root@localhost mnt]# cd tmp
[root@localhost tmp]# touch file
[root@localhost tmp]# touch file1
[root@localhost tmp]# systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*      ##清理临时文件
[root@localhost tmp]# ls              ##8秒后file文件被清理,只剩下file1文件
file1

配置文件 /lib/tmpfiles.d/ westos.conf
这里写图片描述
实验过程截图:
这里写图片描述
这里写图片描述

查漏补缺
[root@localhost tmpfiles.d]# which systemd-tmpfiles
/usr/bin/systemd-tmpfiles
[root@localhost tmpfiles.d]# rpm -qf /usr/bin/systemd-tmpfiles ##查找安装包
systemd-208-11.el7.x86_64
[root@localhost tmpfiles.d]# rpm -ql /usr/bin/systemd-tmpfiles ##查询软件生成文件,即配置文件的位置
package /usr/bin/systemd-tmpfiles is not installed

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Hannah_zh/article/details/79127570

智能推荐

vscode中vim插件配置及其余插件安装_Angelongone的博客-程序员宅基地

vscodevim安装在扩展中搜索vim选择vscodevim进入vscodevim设置修改settings.json将以下代码加入其中{“workbench.colorTheme”: “Abyss”,“vim.easymotion”: true,“vim.sneak”: true,“vim.incsearch”: true,“vim.useSystemClipboard”:...

RabbitMQ环境安装及入门_powerx_yc的博客-程序员宅基地

1. 说明  在企业应用系统领域,会面对不同系统之间的通信、集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越发重要。其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方,比如发送短信,邮件提醒,更新文章阅读计数,记录用户操作日志等等,如果实时处理的话,在用户访问量比较大的情况下,对系统压力比较大。面对这些问题,我们一般会将这些请求,放在消息队列MQ中处理;...

图文详解两种算法:深度优先遍历(DFS)和广度优先遍历(BFS)_用栈实现dfs图解-程序员宅基地

图文详解两种算法:深度优先遍历(DFS)和广度优先遍历(BFS)阅读本文前,请确保你已经掌握了递归、栈和队列的基本知识,如想掌握搜索的代码实现,请确保你能够用代码实现栈和队列的基本操作。深度优先遍历(Depth First Search, 简称 DFS) 与广度优先遍历(Breath First Search,简称 BFS)是图论中两种非常重要的算法,也是进行更高的算法阶段学习的最后一道门槛。搜索算法频繁出现在算法竞赛题中,尤其是深度优先搜索,在竞赛中,它是用来进行保底拿分的神器!本文将.._用栈实现dfs图解

java 拓展包放哪,安装扩展包(Install External Libraries)_徐徐徐大仙的博客-程序员宅基地

在CDH平台上为Streamsets导入扩展包前, 先设置一个用来存储这些扩展包的目录在Cloundera管理平台界面中, 选择StreamSets服务 然后点击Configuration.在 Configuration 页面, 在 Data Collector 高级配置选项中的 (Safety Valve) sdc-env.sh 区域, 增加环境变量 STREAMSETS_LIBRARIES_E..._java external libraries

经典递归--C/C++斐波那契数列_斐波那契数列c++代码_#唐解元的博客-程序员宅基地

*今天给大家带来最经典的递归——斐波那契数列* 斐波那契数列一.什么是斐波那契数列?二.什么是递归(简述)?三.程序分析分析与图解代码C/C++一.什么是斐波那契数列?斐波那契数列,又称黄金分割数列,最早是以兔子繁殖为例子…(数学源于生活嘛.哈哈),所以又称为“兔子数列”,例如:0,1, 1,2, 3,5, 8,13, 21… …如图:————————————————————————————————————————————......_斐波那契数列c++代码

雅克比公式求矩阵最大特征值(C语言版)_c语言实现雅可比矩阵_爱学习的小野狼的博客-程序员宅基地

由于上次发表的自适应滤波器LMS算法涉及到要寻求矩阵最大特征值,因此一直寻思着找个C语言的雅克比算法,下面的代码也是自己试过了,望各位有问题可以提问,谢谢!!!矩阵的特征值和特征向量是线性代数以及矩阵论中非常重要的一个概念。在遥感领域也是经常用到,比如多光谱以及高光谱图像的主成分分析要求解波段间协方差矩阵或者相关系数矩阵的特征值和特征向量。 根据普通线性代数中的概念,特征值和特征向量可以用传..._c语言实现雅可比矩阵

随便推点

焊接符号标注图解示例_焊接图纸符号 ,不 收藏起来_Lewis 君的博客-程序员宅基地

问:我也是钣金人,怎么加入组织?答:点标题下方蓝字“钣金学习网来源自由检验员联盟,如有侵权请联系我们!基本坡口符号坡口符号(注:图中“破”应为“坡”)焊接图纸符号标注图解示例焊接符号标注实例及方法在焊接结构图样上,焊接方法可按国家标准GB5185-85的规定用阿拉伯效字表示,标注在指引线的尾部。常用焊接方法代号见表3-9所示。如果是组合焊接方法,可用“/”分开,左侧表示正面(或盖面)的..._焊点二维图标识

如何实现IEEE 802.1x _摄像头可以使用802.1x认证嘛_ximenying的博客-程序员宅基地

IEEE 802.1x 称为基于端口的访问控制协议(Port based network access control protocol)。基于端口的访问控制(Port based network access control)能够在利用IEEE 802 LAN的优势基础上提供一种对连接到局域网(LAN)设备或用户进行认证和授权的手段。通过这种方式的认证,能够在 LAN 这种多点访问环境中提供一种_摄像头可以使用802.1x认证嘛

mysql交集_mysql交集INTERSECT运算符的具体应用方法_小婉青青的博客-程序员宅基地

集合论中,设A,B是两个集合,由所有属于集合A且属于集合B的元素所组成的集合,叫做集合A与集合B的交集(intersection),记作A∩B。INTERSECT运算符是一个集合运算符,它仅返回两个查询或更多查询的不同行。在MySQL数据库中,INTERSECT就可以用来查询交集内容。一、INTERSECT运算符的语法(SELECT column_listFROM table_1)INTERSEC..._mysql 交集函数

华三交换机IRF堆叠配置及MAD配置_华三交换机堆叠配置命令_不是大雄也可以有哆啦a梦的博客-程序员宅基地

华三交换机IRF配置1、主机2、备机1、主机irf member 1 priority 32 //将主机IRF优先级调高,指定该台设备为主机interface range Ten-GigabitEthernet1/0/51 Ten-GigabitEthernet1/0/52shutdown //把端口shutdown了才能加入IRF端口组irf-port 1/1 //将IRF端口加入I..._华三交换机堆叠配置命令

Hexo搭建及部署_向小暖的博客-程序员宅基地

Hexo是什么? Hexo是一个快速、简洁且高效的博客框架,使用Markdown解析文章,可利用可定制的主题生成静态网页。安装 必备程序:Node、Git使用npm安装hexo-clinpm install/i -g hexo-cli初始化Hexo项目目录hexo init <folder>安装完成,启动服务测试。cd <f...

从计算机视觉的小白变为大神,你需要经历这七个阶段_小白学视觉的博客-程序员宅基地

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达如果想要机器能够进行思考,我们需要先教会它们去看。李飞飞——Director of Stanford AI Lab ..._计算机视觉进阶

推荐文章

热门文章

相关标签