linux系统定时任务和延时任务

1.系统延时任务

安装 dnf postfix mail ,接受及发送邮件的工具
所以在进行实验之前要进行配置本地仓库

POSTFIX
是一种电子邮件服务器。postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件。这真是一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

systemctl enable --now postfix
在这里插入图片描述

定时任务

[root@localhost libvirt]# at 18:26    设定任务执行时间
warning: commands will be executed using /bin/sh
at> date      #任务动作
at> <EOT>    #crtl+D 发起任务   
job 4 at Sat Aug  1 18:26:00 2020
You have mail in /var/spool/mail/root

延时任务

[root@localhost ~]# at now+1min		##延时1分钟
at> rm -fr /mnt/*
at> <EOT>
at -l查看任务列表
at -c 任务号查看任务内容
at -r 任务号取消任务执行

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
邮件 (注意: 当任务有输出时,输出会以邮件的型是发送给at任务的发起者)



[root@localhost libvirt]# mail root -s test messages      发送邮件
Subject: date    正文部分
.             退出
EOT
Null message body; hope that's ok
[root@localhost libvirt]# mail  查看邮件信息
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 2 messages 2 new
>N  1 root                  Sat Aug  1 18:24  19/699   "date"
 N  2 Mail Delivery System  Sat Aug  1 18:24  93/3156  "Undelivered M"
& Held 2 messages in /var/spool/mail/root  邮件默认存放路径


[root@localhost ~]# mail --help   查看相关参数
mail: illegal option -- -
Usage: mail -eiIUdEFntBDNHRVv~ -T FILE -u USER -h hops -r address -s SUBJECT -a FILE -q FILE -f FILE -A ACCOUNT -b USERS -c USERS -S OPTION users
mail -u root查看超级用户邮件
1查看第一封邮件
q退出
> /var/spool/mail/root清空邮件
[root@rhel8_nodel network-scripts]# mail root -s test messages     
Subject: aaaaaa
.
EOT
Null message body; hope that's ok
[root@rhel8_nodel network-scripts]# mail -u root ##########查看超级用户邮件
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/mail/root": 2 messages 2 new
>N  1 root                  Sat Aug  1 13:40  19/709   "aaaaaa"
 N  2 Mail Delivery System  Sat Aug  1 13:40  93/3179  "Undelivered Mail Returned to Sender"
& 1     #############查看任务号为1的邮件
Message  1:
From root@rhel8_nodel.westos.com  Sat Aug  1 13:40:05 2020
Return-Path: <root@rhel8_nodel.westos.com>
X-Original-To: root
Delivered-To: root@rhel8_nodel.westos.com
Date: Sat, 01 Aug 2020 13:40:05 +0800
To: messages@rhel8_nodel.westos.com, test@rhel8_nodel.westos.com,
	-s@rhel8_nodel.westos.com, root@rhel8_nodel.westos.com
Subject: aaaaaa
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root <root@rhel8_nodel.westos.com>
Status: R


& headers ############### 回到列出的邮件
>   1 root                  Sat Aug  1 13:40  19/709   "aaaaaa"
 N  2 Mail Delivery System  Sat Aug  1 13:40  93/3179  "Undelivered Mail Returned to Sender"
& q  ###################退出
Held 2 messages in /var/mail/root

2.at任务的黑白名单

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

当黑白名单中是同一个普通用户,则此用户能使用at,
黑名单

[root@localhost ~]# cat /etc/at.deny   
lee       设置用户lee为黑名单
[lee@localhost ~]$ at 12:22   黑名单里的用户不能使用at命令
You do not have permission to use at.

白名单

[root@localhost ~]# touch /etc/at.allow 白名单不存在  新建一个白名单文件,普通用户都无法使用
[westos@localhost ~]$ at 12:22
You do not have permission to use at.
[root@localhost ~]# su - lee   
[lee@localhost ~]$ at 12:22  必须切换到相应用户中进行测试
You do not have permission to use at.

[root@localhost ~]# cat /etc/at.allow 白名单写入用户
westos
[root@localhost ~]# su - lee
[lee@localhost ~]$ at 12:22   除白名单里的普通用户都不能用at
You do not have permission to use at.
[lee@localhost ~]$ su - westos
Password: 
[westos@localhost ~]$ at 12:22        只有白名单用户可以使用at命令
warning: commands will be executed using /bin/sh
at> date
at> <EOT>
job 7 at Sun Aug  2 12:22:00 2020
[westos@localhost ~]$ 

3.系统定时任务

3.1 crontab 时间表示方式

[root@rhel8_nodel cron]# cd /etc/cron.d/
[root@rhel8_nodel cron.d]# ls
0hourly  raid-check
[root@rhel8_nodel cron.d]# cat 0hourly  ###文件编辑格式
# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly
* 1 2 3 4分钟 小时 哪天 星期几 /表示每… 每两分钟
* * * * *每分钟
*/2 * * * *每两分钟
*/2 09-17 * * *##早7-晚5每两分钟
*/2 */2 * * *每隔2小时每两分钟
*/2 09-17 3,5 1 5每个月的3号,5号及每个星期五的9点和17点 每两fenzhong
*/2 09-17 * * 5每周周五早9晚5每辆分钟

3.2系统控制crontab的服务

crond.service ##当程序开启时定时任务生效 (一般默认开启)
在这里插入图片描述

3.3crontab的命令(用户级的定时任务)

crontab -e -u -e:编辑 -u user 设定的用户、
* * * * * 命令
crontab -l -u 查看定时任务
crontab -r -u 删除定时任务
在这里插入图片描述

详解来源于博客园

-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。

file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。

-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

-i:在删除用户的crontab文件时给确认提示。

3.4文件方式设定定时任务(系统级的定时任务方式)

vim /etc/cron.d/file
* * * * *   username	action
* * * * *   root	rm -fr /mnt/*

在这里插入图片描述
定时任务被执行(自行观察时间)
在这里插入图片描述

3.5crontab的黑白名单

/etc/cron.deny		##系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow		##系统中默认不存在,当文件出现,普通用户不能执行crontab                          	  ##只有在名单中的用户可以,并且/etc/at.deny失效
			##这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行
chmod 777 /mnt/   更改权限,普通用户可以在此目录中建立文件
[root@localhost ~]# rm -fr /mnt/*
[root@localhost ~]# watch -n 1 ls -lR /mnt/

[root@localhost ~]# cat /etc/cron.deny  
lee

[root@localhost cron.d]# cat /etc/cron.d/westos
* * * * *   lee touch  /mnt/file{1..5}
监控到的结果  lee完成定时任务  说明at黑名单在此处无效
/mnt/:
total 0
-rw-r--r-- 1 lee lee 0 Aug  1 20:01 file1
-rw-r--r-- 1 lee lee 0 Aug  1 20:01 file2
-rw-r--r-- 1 lee lee 0 Aug  1 20:01 file3
-rw-r--r-- 1 lee lee 0 Aug  1 20:01 file4
-rw-r--r-- 1 lee lee 0 Aug  1 20:01 file5

4.系统中临时文件的管理方式(文件超过生命周期被清理)

基本原理:写一个管理自己临时文件的配置文件,/usr/lib/tmpfiles.d/xxxx.conf 文件内容 d /mnt/westos 1777 root root 8s使自己的配置文件生效,在/mnt/westos目录中创建文件,删除临时文件 systemd-tmpfiles --clean /lib/tmpfiles.d/westos.conf 执行临时文件的配置文件 隔8s文件删除

确保实验环境纯净 删掉之前设置的定时任务

/usr/lib/tmpfiles.d/xxxx.conf 管理系统的临时文件的配置文件
vim /usr/lib/tmpfiles.d/westos.conf

目录  名称         权限  用户 用户组  做任务每隔多长时间
d   /mnt/westos    1777 root root      8s      

systemd-tmpfiles --creat /lib/tmpfiles.d/westos.conf
在这里插入图片描述systemd-tmpfiles --clean /lib/tmpfiles.d/westos.conf 只会清理掉达到生命周期的文件
在这里插入图片描述


























评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值