Linux系统延时任务及定时任务

系统延时任务及定时任务

 

一.系统延时任务

1.at   延迟任务是临时的

  延迟任务执行后,结果不会在shell上面显示,会以邮件的形式发送给执行人

2.查看邮件  mail

  邮件所在文件     /var/spool/mail/root

3.设置延迟任务

[[email protected]~]#   at  23:37                  ##设定任务执行时间
at> rm -fr /mnt/*                                          ##任务动作(删除)
at> <EOF>    << ctrl +D                            ##用ctrl+d发起任务

Linux系统延时任务及定时任务

Linux系统延时任务及定时任务

[[email protected]~]# at now+1min             ##延时1分钟后执行任务

at> <EOT>

 注意:任务延迟时间为整min

Linux系统延时任务及定时任务

at -l                                  ##查看任务列表
at -c    任务号                ##查看任务内容

Linux系统延时任务及定时任务
at -r    任务号                 ##取消任务执行

注意:
当有任务输出时,输出会以邮件的形式发送给at任务的发起者
mail -u root                         ##查看超级用户邮件

mail -u kiosk                      ##查看普通用户邮件

Linux系统延时任务及定时任务
l                                           ##查看第一份邮件
q                                         ##退出

Linux系统延时任务及定时任务

> /var/spool/mail/root       ##清空邮件

Linux系统延时任务及定时任务


4.任务的黑白名单

注意:黑名单不针对超级用户
/etc/at.deny          ##系统中默认存在,此文件中出现的用户不能执行at

例如:将westos加入到黑名单中,便不能执行at命令

Linux系统延时任务及定时任务

Linux系统延时任务及定时任务

Linux系统延时任务及定时任务

注意:白名单不针对超级用户
/etc/at.allow         ##系统中默认不存在,需要手动建立当文件出现,普通用户不能执行at
                             ##只有在名单中的用户可以进行at命令,白名单出现/etc/at.deny失效

将刚刚加入黑名单的westos加入到白名单中,westos就可以进行at命令了

Linux系统延时任务及定时任务

二.系统定时任务

1.crontab时间表示方式
* * * * *     命令指示(例:删除rm -fr /mnt/*0)     ##每分钟发出一次删除命令
*/2 * * * *                                 ##每两分钟
*/2 09-17 * * *                        ##早7——晚5每两分钟
*/2 */2 * * *                             ##每隔2小时每两分钟
*/2 09-17 3,5 1 5                  ##3月和5月每周周五及3月1日和5月1日
*/2 09-17 * * 5                       ##每周周五早9晚五

2.系统控制crontab的服务
   crond.service                      ##开机自启动会排查未执行的crontab,立即执行

3.crontab  永久生效

    man   5   crontab 可查看crontab的用法
    crontab  -u  username  -e      直接编辑定时任务
    crontab  -u  username  -l       查看设置的定时任务
    crontab  -u  username  -r       删除设置的定时任务

Linux系统延时任务及定时任务

Linux系统延时任务及定时任务

4.文件方式设定定时任务 
vim    /etc/cron.d/file                ## file文件必须在/etc/cron.d目录下

* * * * *        username          action       ## 指定任务、用户以及动作
eg:指定超级用户每分钟删除/mnt目录下的所有文件。  

   * * * * *    root       rm -rf /mnt/* 

Linux系统延时任务及定时任务

首先监控/mnt/下新建的文件,以便查看命令执行结果

Linux系统延时任务及定时任务

编辑此文件/etc/cron.d/file

Linux系统延时任务及定时任务

查看内容

Linux系统延时任务及定时任务

注意:系统级的定时任务不会在用户级的文件中显示

所以只能cat /etc/crond/file 才能看到设定的内容

非交互式定时任务设定

Linux系统延时任务及定时任务
Linux系统延时任务及定时任务

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

Linux系统延时任务及定时任务

编辑此文件输入studnet用户,我们可以看到student用户无法进行定时任务的设定

Linux系统延时任务及定时任务
  /etc/cron.allow            ## 系统中默认不存在,存在这个文件时,只有白名单中的用户和root用户可以使用crontab命令,其他用户不可以使用普通用户将不能执行crontab。

Linux系统延时任务及定时任务

再在白名单中输入student用户,黑名单内容失效,student用户即可进行定时任务的设定

Linux系统延时任务及定时任务

进入westos用户还是不可以进行此操作,因为白名单中只有student用户。

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

下面来证实一下,在/etc/cron.d/中建立一个文件发起任务

Linux系统延时任务及定时任务

即用student用户在/home/student下建立文件

Linux系统延时任务及定时任务

一分钟后可以看到/home/student/下文件建立成功

Linux系统延时任务及定时任务

四、系统中临时文件的管理方式
    cd  /usr/lib/tmpfiles.d/          ## 切换环境
    vim  westos.conf

    输入:d  /mnt/westos  777  root  root  8s               ## 配置文件的作用域
    systemd-tmpfiles  --create  /usr/lib/tmpfiles.d/*      ## 创建
    systemd-tmpfiles  --clean   /usr/lib/tmpfiles.d/*       ## 清理临时文件

   首先切换环境

Linux系统延时任务及定时任务

编辑文件westos.conf输入内容

Linux系统延时任务及定时任务

Linux系统延时任务及定时任务

Linux系统延时任务及定时任务

在/mnt/westos下建立文件,8秒就会清理一次

Linux系统延时任务及定时任务