linux延迟任务和定时任务管理

一、延迟任务

延迟任务是临时的,不重复的

当邮件任务有输出,输出会以邮件的形式发送给任务发起人

1、延迟任务发起

ctrl+d    任务发起

[root@localhost ~]# at 01:33
at> rm -fr /mnt/*

at> <EOT>                                       在1点33删除/mnt/下的所有文件

at -l                                                    查看任务列表

at -c   任务编号                                  查看延迟任务详情

         

atrm 任务编号                                                       取消某个延迟任务

延迟任务黑白名单

/etc/at.deny                                        延迟任务黑名单,用户加入这个文件后,将不能执行延迟任务

例如将westos用户加入黑名单后,切换到westos用户,不能执行延迟任务,切换到其他用户student用户依旧可以执行


/etc/at.allow                                       延迟任务白名单。系统默认不存在,如果需要,需要手动添加白名单,添加成功后所有普通用户都不可执行延迟任务(白名单内用户和超级用户除外)

将westos用户加入到白名单后,除了westos用户,其他用户都不能执行延迟任务操作

注意!!黑白名单对root用户无效

二、定时任务

定时任务是永久的,定时任务所需要的服务为crond.service(执行定时任务需要开启该服务)

定时任务程序crond,在系统中每分钟作扫描。

1、延迟任务编辑规则

     分   时    天    月     周                             ##*表示全部
      *      *      *       *       *                               ##每隔1分钟执行1次
      */2   *      *       *       *                              ##每隔2分钟执行1次
      *      */2    *      *        *                             ##每隔2小时执行1次
      *      *    1,4   *       *                             ##每月1、4号每隔1分钟执行1次
      *      *      *       1-4      *                           ##1、4月每隔1分钟执行1次

      *      *      *       *         4                            ##每周4每隔1分钟执行1次

2、发起方式一:用户级别的定时任务发起

crontab -u username -e                  发起用户的任务

crontab -u username -l                  查看这个用户的所有定时任务


crontab -u username -r                  删除这个用户的所有定时任务

   

如果不加用户参数,则表示root用户的任务执行

任务文件保存位置

/var/spool/cron/root      查看root用户定时任务保存位置(后面表示用户名,如果是student表示student用户的定时任务)


也可以直接在此文件中编辑,

延迟任务黑名单为/etc/cron.deny

延迟任务白名单为/etc/cron/allow(系统默认不存在,如果存在,所有用户均在黑名单)

黑白名单对超级用户无效,使用规则和延迟任务规则一样



发起方式二:系统级别的定时任务发起

/etc/下的这几个目录是跟系统级别有关的定时任务文件

cron.d/                                   超级用户设定的自定义定时任务目录 里面是所有自定义任务
自定义任务文件格式* * * * * username 命令     系统级别的自定义任务设定需要指定用户     
cron.daily/                               每天执行的定时任务目录
cron.hourly/                              每小时执行的定时任务目录
cron.monthly/                             每月执行的定时任务目录

cron.weekly/                              每周执行的定时任务目录


可以直接在/etc/cron.d/目录下新建文件,生成系统级别的定时任务,任务编写规则为:

延迟任务黑名单为/etc/cron.deny

延迟任务白名单为/etc/cron/allow(系统默认不存在,如果存在,所有用户均在黑名单)

黑白名单对超级用户无效,使用规则和延迟任务规则一样

FBI警告:系统级别设定的定时任务  在crontab -u suername -l 命令查询查询不到

3、非交互式系统级别定时任务设定

*****非交互式定时任务设定****

echo "* * * * * student date">>/etc/cron.d/hello    在cron.d/下生成一个叫hello的自定义定时任务


4、系统临时文件的定时清理

######系统临时文件的定时清理####
定时清理系统文件所需要的服务为system-tmpfiles找到该服务文件所在目录/usr/lib/tmpfiles.d  在该目录下建立一个自动清理的文件westos.conf
编辑内容为
d   /mnt/tmp/  1777   root  root   10s       对/mnt/tmp/下的超过10s的文件执行操作
systemd-tmpfiles --create /usr/lib/tmpfiles.d/*  建立刚才编辑的文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*   删除/mnt/tmp下超过10s的文件



猜你喜欢

转载自blog.csdn.net/weixin_41789003/article/details/80000135