系统延时与定时任务

来源:互联网 发布:网络分布式继电器接线 编辑:程序博客网 时间:2024/05/21 17:38
######1.系统延时与定时任务############

at命令
发起或删除延时命令
at命令发起的任务都是一次性的

at  时间
命令
Ctrl+d

[root@foundation34 8.1]# at 09:17
at> rm -fr /mnt/*    ##延迟动作
at> <EOT>        ##Ctrl+d表示发起动作
job 1 at Tue Aug  1 09:17:00 2017

at -l | atq        ##查看当前任务
atrm | at -d        ##取消指定任务
at -c            ##查看任务内容
at now+1min        ##延迟一分钟
at -f file        ##延迟执行文件中的内容
at -m            ##延迟命令没有输出时仍然发送邮件给执行者
at -M            ##延迟命令有输出时但不发送邮件给执行者

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


##########2.定时任务##############
定时任务是永久的

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

发起方式一:

crontab -u username -e        ##创建特定用户定时任务
crontab -u username -r        ##删除特定用户定时任务
crontab -u username -l        ##列出特定用户定时任务

*    *     *    *     *    touch /mnt/file
分钟    小时    天    月    周    任务

*    */2    *    *    *    ##每隔两小时
*    *    */2    *    *    ##每隔两天
*    *    01,15    *    6    ##每周六以及每月的1号15号
*/10    08-17    *    *    5    ##每周五8:00至17:00之间(最后一次执行是16:50),每隔十分钟


发起方式二:
vim /etc/cron.d/filename

分钟    小时    天    月    周    用户    动作
*    *    *    *    *    root     rm -fr /mnt/*    #超级用户每分钟清理一次/mnt


########### cron 命令执行权力的设定########
/etc/cron.deny        ##用户黑名单。在此名单中出现的用户不能执行crontab命令,黑名单对文件记录的定时任务无效
/etc/cron.allow        ##用户白名单。名单默认不存在,但名单一旦出现,黑名单失效
            ##系统所有用户默认不能执行crontab,只有名单里出现的人可以使用crontab命令



#########3.系统临时文件的管理########

系统中在正常运行时会产生临时文件
/usr/lib/tmpfiles.d/*.conf    ##系统中临时文件的配置

文件类型    文件名称    文件权限    文件所有人    文件所有组    文件存在时间
d        /mnt/westos    777        root        root        10s

systemd-tmpfiles --create /usr/lib/tmpfiles.d/*        ##添加临时文件

systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*        ##删除临时文件,删除时间必须大于设定的文件存在时间



练习题:建立/mnt/demo目录,此目录中的文件必须存在2分钟以上的才可被清除,系统每分钟清理一次/mnt/demo


  1 #!/bin/bash
  2 systemd-tmpfiles --create /usr/lib/tmpfiles.d/westos.conf
  3 echo "* * * * * root systemd-tmpfiles --clean /usr/lib/tmpfiles.d/westos.con    f" >> /etc/cron.d/westos
  4 echo "d /mnt/demo 777 root root 120s" >> /usr/lib/tmpfiles.d/westos.conf    
~