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

系统定时任务及延时任务


一.at(延时任务)命令的基本用法


[root@foundation17 ~]# at now+1min    ###1分钟后执行以下命令
at> mkdir ./wrh{1..3}
<EOT>                                                        ####ctrl+d发起任务
job 1 at Sun Oct 29 13:52:00 2017




[root@foundation17 ~]# at -l
[root@foundation17 ~]# ls
anaconda-ks.cfg  file                        rht-ks-post.log  wrh2
Create_vm.sh     foundation-config-post.log  rht-ks-pre.log   wrh3
Documents        ks.cfg                      wrh1
[root@foundation17 ~]# at now+2min
at> rm -fr ./wrh{1..3}        
at> <EOT>
job 2 at Sun Oct 29 13:55:00 2017
[root@foundation17 ~]# at -l
2    Sun Oct 29 13:55:00 2017 a root
[root@foundation17 ~]# ls
anaconda-ks.cfg  Documents  foundation-config-post.log  rht-ks-post.log
Create_vm.sh     file       ks.cfg                      rht-ks-pre.log
[root@foundation17 ~]#





at   -m           ###显示没有输出的邮件
     -c  文件id   ###列出延时任务
 [root@foundation17 ~]# at -c 4
  touch file{1..3}
      -l           ###列出id
[root@foundation17 ~]# at 14:24
at> touch file{1..3}    
at> <EOT>
job 4 at Sun Oct 29 14:24:00 2017
[root@foundation17 ~]# at -l 4
4    Sun Oct 29 14:24:00 2017 a root






     -r   文件id   ###删除此id的任务




     -M            ###让有输出的任务不产生邮件
     -f            ###用文件内记录的命令作为延迟任务的命令


二.at命令的使用控制
默认系统中全部用户都有执行at命令的权力
at命令的黑白名单 当白名单建立,黑名单失效
1.黑名单 
 默认情况下。系统存在用户黑名单  
/etc/at.deny    ###默认为空




写入student      ####禁止student用户使用at命令






2.白名单
 默认系统中是不存在at的白名单的
 
[root@foundation17 ~]# touch /etc/at.allow
[root@foundation17 ~]# vim /etc/at.allow




student                        #####把student用户加入白名单



但白名单设定后,系统中除白名单
中出现的用户以及root用户
[root@foundation17 ~]# at now+1min
at> touch opo
at> <EOT>
job 7 at Sun Oct 29 14:51:00 2017  ####root用户可以执行
其他用户均不能执行at命令
[student@foundation17 ~]$ at 14:42
at> touch fffff
at> <EOT>
job 5 at Sun Oct 29 14:42:00 2017      #####student可执行at命令
[westos@foundation17 ~]$ at now+1min
You do not have permission to use at.   #####westos不能执行at命令




####root用户和白名单中的student可以使用at命令而westos用户则不能



[root@foundation17 ~]# vim /etc/at.allow
 student
 westos
                                     #####把westos加入白名单




[westos@foundation17 ~]$ at now+1min
at> touch ooooo
at> <EOT>
job 6 at Sun Oct 29 14:49:00 2017
[westos@foundation17 ~]$                ####westos可执行at命令





三.cron(定时任务)  代替人在指定的时间去完成一个任务


cron计划任务默认root用户与非root用户都可以执行,当然如果在安全方面想禁用这部分用户,则可以通过两个文件来解决:

  • cron.allow

  • cron.deny

cron.allow:定义允许使用crontab命令的用户
cron.deny:定义拒绝使用crontab命令的用户

这两个文件有优先级,普通用户在执行crontab命令的时候
1、系统先检测cron.allow文件是否存在;如果存在,则检测文件中存在的用户中是否有当前用户,检测通过则开始执行,检测不通过直接提示该用户没有执行权限

2、当系统没有检测到cron.allow文件存在的时候,则接下来检测cron.deny文件,看当前用户是否被deny掉,

如果没有在cron.deny文件中检测到当前运行crontab的用户,则该命令可以成功执行,如果有检测到该用户在cron.deny文件中,则直接提示该用户没有执行权限



1.
cron此程序由crond.service 服务提供
写入程序的时间和时间是永久保存的
2.cron设定方式
 
crontab -e 【-u 用户名称(可不写)】




分钟 小时 天     月    周     事件
58  08  *       *     *    rm -fr /mnt/text/*   ###每天8:58删除mnt/text中的所有内容




58  08  1,15   *     *    rm -fr /mnt/text/*   ###每月1号和15号的8:58分删除mnt/text下内容




[root@foundation17 ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@foundation17 ~]# crontab -l      ####列出当前用户定时任务
* * * * *   touch /mnt/file{1..4}
*/2 * * * * rm -fr /mnt/*
[root@foundation17 ~]#





/var/spool/cron/*    ####cron任务记录文件存放位置





3.cron的黑白名单

默认情况下,系统只存在黑名单,当白名单建立,黑名单失效
白名单建立后除root用户和白名单里的用户其他用户不能执行crontab

1>黑名单
  /etc/cron.deny    ###在此名单中用户禁止执行crontab



vim /etc/cron.deny
 student            ###student禁止执行crontab






2>白名单
  touch /etc/cron.allow   ###建立白名单
vim /etc/cron.allow
  student                  ####把student加入白名单 黑名单失效






 4.文件方式定义crontab
1>
vim /var/spool/cron/用户名称                ####以某个用户身份执行cron,文件名称必须和用户名称一致




分  时  天 月 周  动作




2>
vim /etc/cron.d/文件               ####设定多个用户身份执行crontab
[root@foundation17 ~]# vim cron.sh                 ###
#!/bin/bash
cat >> /etc/cron.d/text <<eof
* * * * * root touch /tmp/file{1..2}
* * * * * student touch /tmp/file{3..4}
eof


####cron.sh脚本没有可执行权限  在执行前应该给其加上x权限 然后用 ./cron.sh 直接调用




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值