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

一、系统延时任务

使用at 命令发起的延时任务都是一次性的

基本用法:

1. at   time   #指定命令执行的时间

2. at   -l   #查看当前任务

   其中,最前面显示的数字为延时任务的编号

3. at   -d   任务编号   #取消还未执行的任务

4. atrm   任务编号   #取消还未执行的任务,功能和at   -d 一样

5. at   now+time   #延时一定时间执行

例如延时1分钟后,执行创建文件file命令

注:编写脚本程序:

echo 为输出语句

6. at   -f   filename   #延时执行文件中的内容,延时时间可在文件中编写,还可使用-t 参数设置

7. at   -m   #延时命令没有输出的情况下发邮件给执行者

    at   -M   #延时命令没有输出的情况下不发邮件给执行者

二、at 命令的执行权力设定

1. 添加用户黑名单(/etc/at.deny 系统默认存在此文件)

在此名单中出现的用户不能执行at 命令

在黑名单中加入student用户

student就不能执行at 命令

2. 设定用户白名单(/etc/at.allow 系统默认不存在此文件,需要用户创建)

注:如果白名单一旦存在,系统中所有的用户默认不能执行at 命令,只有在名单中出现的用户可以使用at 命令

在白名单外的除过超级用户外的其他用户将不能执行at 命令

三、系统定时任务

定时任务是永久的,一旦设定,在没有主动删除的情况下,会一直存在在系统内

1. 发起方式

发起方式分为两种,一种是命令方式,另一种是通过修改配置文件发起

方式一(命令):

crontab   -u   username   -e   #编写定时任务

将在每分钟执行如下命令

crontab   -u   username   -l    #查看定时任务

先创建文件

1分钟后文件被删除

crontab   -u   username   -r    #删除定时任务

设定格式:

*   *   *   *   *

a. 分钟

b. 小时

c. 天

d. 月

e. 周

在某个* 后加上/num 表示每隔相应的多长时间

例如:

05   *   *   *   *   #每小时过5分钟

05   02   *   *   *    #每天2:05 am

30   08   01   *   *   #每月第一天8:30 am

00   07   25   12   *   #12月25日7:00 am

30   16   *   *   5   #每个星期五4:30 pm

*/5   *   *   *   *   #每5分钟

*/10   9-17   1,15   *   *   #在每月第一天和第十五天9:00 am 至5:00 pm 之间(在5:00 pm 不会运行,最后一次运行是在4:50 pm )每隔10分钟

0   0   1   jan   0   #1月1日午夜和1月的每个星期日 (不仅是1月1日所在的星期日)

方式二(配置文件):

创建并修改配置文件:/etc/cron.d/filename

vim   /etc/cron.d/filename  

在此文件中输入想要定时的设定与执行的文件

文件在两分钟后成功被删除

2. crontab 命令的执行权力设定

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

切换到student 用户下,执行crontab命令被决绝

用户白名单(/etc/cron.allow,系统默认不存在此文件),只有在名单中出现的用户可以使用crontab 命令

切换到白名单以外的用户,发现不能执行crontab 命令

四、系统临时文件的管理

系统中服务在正常运行中都会产生临时文件  

临时文件的配置文件都在  /usr/lib/tmpfiles.d/   目录下

创建并修改配置文件:vim   /usr/lib/tmpfiles.d/filename.conf

其中,设定格式为:

d                       /mnt/westos             777     root         root              10s

文件类型   临时文件所在的目录   权限   拥有人   所属组   文件存在的时间

然后,执行配置文件内容  systemd-tmpfiles   --create   /usr/lib/tmpfiles.d/westos.conf

再清理临时文件  systemd-tmpfiles   --clean   /usr/lib/tmpfiles.d/westos.conf

此时系统就会清理配置文件中所写目录下,并满足文件存在时间要求的文件

删除了已经创建了10s 以上的文件

猜你喜欢

转载自blog.csdn.net/weixin_43369306/article/details/83715687