linux中系统延时任务及定期任务 | at crontab | 系统临时文件的管理

一,延时任务
at命令发起的任务都是临时的,不重复的,一次性的

当延迟任务有输出,输出会以邮件的形式发送给任务发起人。邮件用mail查看

1,

at    time                 ###在改时间执行  

at now+1min            ####延迟一分钟

[root@demo ~]# at 11:11
at> rm -fr /mnt/*        ##延迟动作
at> <EOT>            ##ctrl+d表示发起动作
job 6 at Tue Aug  1 11:11:00 2017  ###任务执行的时间

2,

at -l        #查看当前任务

atq            #查看当前任务


3,

at -d  2(任务编号)        #取消指定任务

atrm   1(任务编号)           #取消指定任务


4,

at -c    3(任务编号)            #查看任务内容(倒数第二行)

5,

at -f file            #延迟执行文件中的内容

6,

at -m                #延迟命令没有输出时仍然发送邮件给执行者

###有输出,输出为时间

  ####邮件中可以看到输出时间(最后一行)


###touch命令本身没有输出,但是-m没有

                                                                                                                            ####输出也发邮件


at -M                #延迟命令有输出时但不发送邮件给执行者



7,

systemctl status at.service       ###查看延迟任务服务的状态

systemctl stop at.service          ###关闭延迟任务服务


8,

at 命令的执行权力设定

/etc/at.deny        ##用户黑名单,在此名单中出现的用户不能执行at命令


/etc/at.allow        ##用户白名单,名单默认不存在,但名单一旦出现,黑名单失效

                           ##系统所有用户默认不能执行at,只有在名单中出现的用户可以使用at命令

注意:root用户不受限制。


二,定期任务

#定时任务是永久的

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

man 5 crontab                                ###查看crontab说明,使用例子
systemctl status crond.service       ###查看crontab服务的状态

systemctl stop crond.service       ###关闭crontab服务

1,crontab 命令
crontab -u username -e   ###为某用户设定定期任务
crontab -u username -r   ###删除某用户的定期任务

crontab -u username -l    ###查看某用户的定期任务

*    *    *    *    *            touch /mnt/file

分  时 日 月   周几       动作

时间用法

*     *   */2  *    *        ###每隔两天###每个月每周每隔2天
*  08-17/2  *  *  *       ###每天8点到17点每隔2小时

*   *    01,15   *  6      ##每个月1号和15号和每周6

*/2  08-17   01,04   3-5   1     ##3到5月,每周1和1号和4号,8点-17点每两分钟1次

2,编辑配置文件

######

vim /var/spool/cron/username     ###设定用户的定时任务

vim /var/spool/cron/root     ###设定root用户的crontab

格式:分钟 小时 天 月 周      用户    动作  ####用户必须要写

              *       *      *   *  *        root    rm -fr /mnt/*        ####超级用户每分钟清里一次/mnt


[root@foundation156 cron]# vim /etc/cron.d/ex

     #########超级用户每分钟清里一此/mnt

#########

在/etc/cron.d/下面的文件中有书写的示例

[root@localhost ~]#cd  /etc/cron.          ###Tab显示
cron.d/       cron.daily/   cron.hourly/  cron.monthly/   cron.weekly/
 自定义        每天执行      每小时执行    每月执行        每周执行
编辑文件自定义:vim /etc/cron.d/westos

* * * * *  root  rm -fr /mnt/*          ###用户名称必须写


非交互式编辑:echo  "* * * * * root  date"  >> /etc/cron.d/root   ###追加
                                                                        ###root每分中执行一次date

3,

#### crontab 命令的执行权力设定 ####
/etc/cron.deny        ##用户黑名单,在此名单中出现的用户不能执行crontab命令
/etc/cron.allow        ##用户白名单,名单默认不存在,但名单一旦出现,黑名单失效

                               ##系统所有用户默认不能执行crontab,只有在名单中出现的用户可以使用


三,系统临时文件的管理

#######系统中服务在正常运行时会产生临时文件
/usr/lib/tmpfiles.d/*.conf        ##系统中临时文件的配置
文件类型    文件名称    文件权限    文件所有人    文件所有组    文件存在时间

     d        /mnt/westos       1777              root                  root              10s  ####1777任何人都能在这下面建立文件

                                                                                             ####但是只有自己能删除自己的文件,从而保护了自己的文件

######在/mnt/westos下文件超过10s就会被删除

systemd-tmpfiles --create /usr/lib/tmpfiles.d/*    ##执行临时文件配置,发起

systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*    ##执行这条命令时,此刻为止,超过10秒的会被清除

注意:当systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*这条语句被执行时,此刻,只要超过10s就会被删除,没有超过10s的文件将会被保留,直到再次出现了clean命令时,如果从touch文件到此刻满10s了就会被清除,否则继续保留

猜你喜欢

转载自blog.csdn.net/ha_weii/article/details/80071801