linux基础(二十)延时及定时任务、临时文件管理
来源:互联网 发布:淘宝980ti2399能买吗 编辑:程序博客网 时间:2024/06/07 12:43
系统延时任务
at命令发起的延时间任务都是一次性的
一、格式:at+time
[root@client1 ~]# at 02:15
at> touch /mnt/file<EOT> ##延迟动作,表示在/mnt下创建一个file
at> <EOT> ##ctrl+d表示发起动作,可以退出编辑界面
job 1 at Mon Nov 13 02:15:00 2017
##表示在2点15分自动执行touch /mnt/file这个动作
二、参数
1)at -l | atq #查看当前任务
[root@client1 ~]# at -l
1 Mon Nov 13 02:15:00 2017 a root ##1代表任务号
[root@client1 ~]# atq
1 Mon Nov 13 02:15:00 2017 a root
2)atrm | at -d +任务号 #取消指定任务
[root@client1 ~]# at -l
2 Mon Nov 13 02:22:00 2017 a root
[root@client1 ~]# at -d 2
[root@client1 ~]# at -l
[root@client1 ~]#
3)at -c +任务号 #查看任务内容
[root@client1 ~]# at -l
3 Mon Nov 13 02:25:00 2017 a root
[root@client1 ~]# at -c 3
...
${SHELL:-/bin/sh} << 'marcinDELIMITER1d7b33c2'
touch /mnt/file
marcinDELIMITER1d7b33c2
4)at now+1min #延迟一分钟
[root@client1 ~]# at now+1min
at> rm -f /mnt/file
at> <EOT>
job 4 at Mon Nov 13 02:30:00 2017
5)at -f file #延迟执行文件中的内容
[root@client1 ~]# at 02:35 -f mission
job 6 at Mon Nov 13 02:35:00 2017
[root@client1 ~]# cat mission
touch /mnt/file
6)at -m #延迟命令没有输出时仍然发送邮件给执行者
一般延迟动作写类似touch file这样的不会发送邮件,但加上-m可以打破这个规律
[root@client1 ~]# at 02:41 -m
at> touch /mnt/file
at> <EOT>
job 8 at Mon Nov 13 02:41:00 2017
[root@client1 ~]# mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 2 messages 1 new
1 Anacron Sat Oct 21 21:46 21/803 "Anacron job 'cron.dai"
>N 2 root Mon Nov 13 02:41 13/483 "Output from your job "
& 2
Message 2:
From root@client1.localdomain Mon Nov 13 02:41:01 2017
Return-Path: <root@client1.localdomain>
X-Original-To: root
Delivered-To: root@client1.localdomain
Subject: Output from your job 8
To: root@client1.localdomain
Date: Mon, 13 Nov 2017 02:41:01 +0800 (CST)
From: root@client1.localdomain (root)
Status: R
&
tip:按q退出
7)at -M #延迟命令有输出时但不发送邮件给执行者
一般延迟动作写类似echo hello这样的会发送邮件,但加上-M可以打破这个规律
三、at 命令的执行权力设定
默认系统中全部用户 都有执行at命令的权力
1.用户黑名单
默认情况下,系统中是存在用户黑名单的,这个名单的路径
/etc/at.deny ##用户黑名单,此名单默认为空,并且在白名单不存在时生效
vim /etc/at.deny
student ##student使用at命令的权力被禁止
测试:
[root@server1 ~]# vim /etc/at.deny
student
[root@server1 ~]# su - student
Last login: Tue Oct 31 23:03:04 CST 2017 on pts/0
[student@server1 ~]$ at 12:00
You do not have permission to use at.
2.用户白名单
默认系统中是不存在at的白名单的
但是当白名单出现,系统用户除名单中出现的用户以及root
其他用户均不能执行at命令
touch /etc/at.allow #建立用户白名单,当白名单出现,黑名单失效
测试:
[root@server1 student]# touch /etc/at.allow
student
[root@server1 student]# vim /etc/at.allow
[root@server1 student]# su - student
Last login: Thu Nov 2 11:51:31 CST 2017 on pts/0
[student@server1 ~]$ at now+1min
at> cd /mnt<EOT>
job 12 at Thu Nov 2 11:58:00 2017
可以看到刚才黑名单中的student失效了,并且student以外的用户不能使用at命令
系统定时任务
写入程序的时间时永久保存的
一、crontab执行方法
这个命令由crond.service 服务提供
1.方法一:
crontab -e -u+用户名称(-u+用户名可以不写,就表示使用当前用户)
内容格式:分 时 天 月 周 动作
crontab -l #列出当前用户的cron任务,同样可以使用“-u 用户名称”方式
crontab -r #删除当前用户的cron任务,同样可以使用“-u 用户名称”方式
2.方法二:
/var/spool/cron/* ##cron任务记录文件存放位置,不同用户的定时任务会有这个用户的名字文件。直接更改这个文件里面的内容和用crontab -e效果是一样的,crontab -e命令其实也只是打开了这个目录下的相应用户文件让你编辑而已。
测试:
[root@server1 ~]# ls /var/spool/cron/
root student
[root@server1 ~]# cat /var/spool/cron/root
* * * * * touch /mnt/file1
[root@server1 ~]# cat /var/spool/cron/student
* * * * * touch /mnt/file2
二、crontab命令使用控制
1.用户黑名单
默认情况下,系统中只存在黑名单,当白名单被建立,黑名单失效
/etc/cron.deny ##在此名单中的用户不能执行crontab
vim /etc/cron.deny
student ##student用户不能执行crontab
我们可以看到/etc/cron.deny是默认存在的
2.白名单
默认情况下,系统中只存在黑名单,当白名单被建立,黑名单失效
/etc/cron.allow ##用户白名单,当此名单出现,除root用户及名单中的用户,其他用户不能执行crontab
touch /etc/cron.allow ##建立白名单
我们可以看到,默认是没有/etc/cron.allow这个文件的。
vim /etc/cron.allow
student ##只有student和root用户可以执行crontab,并且会使黑名单里的student限制失效。
三、其他方式发起定时任务
vim /etc/cron.d/文件 #可以设定多个用户身份cron
分 时 天 月 周 用户 动作
测试:
vim /etc/cron.d/aaa #aa这个文件名字随意
* * * * * root touch /tmp/rootfile
* * * * * server1 touch /tmp/server1file
这个文件表示每分钟root用户在/tmp下建立rootfile;每分钟server1用户在/tmp下建立server1file文件
##这个定时任务自成一体,是不受crontab黑白名单限制的,crontab名单限制的只是某个用户不能使用crontab命令而已。而这里的定时任务原理是root为发起者(当然要保证写这个文件的是root用户),通知某一个或几个普通用户做什么什么动作,因此和crontab并不能影响root的决策。
watch -n 1 ls -l /tmp/ #监控tmp目录下文件
1分钟之前:
1分钟之后:
可以看到,在aaa中配置的让哪个用户建立就会产生属于哪个用户名和组的文件。
系统临时文件管理
#系统中服务在正常运行时会产生临时文件
1.创建配置任务
/usr/lib/tmpfiles.d/*.conf ##系统中临时文件的配置,*这里的名字可以随意起
文件类型 文件名称 文件权限 文件所有人 文件所有组 文件存在时间
d /mnt/redhat 777 root root 100s
##表示在/mnt下创建redhat目录并且只存在100s
2.执行配置文件
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##执行临时文件配置,*为刚才创建的文件名字
3.经过100秒之后执行下面命令才可以让redhat目录消失,因此可以把上面那条和下面这条命令都写入crontab任务每分钟执行就达到了创建临时目录/文件的目的
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清理临时文件,*为刚才创建的文件名字
- linux基础(二十)延时及定时任务、临时文件管理
- Linux 基础操作(十五)————at延时任务、cron定时任务、临时文件管理
- linux下任务的延时执行和定时执行操作及临时文件管理
- Linux延时定时任务及系统文件查找和临时文件管理
- Linux延时任务&定时任务&临时文件
- 延时任务at、定时任务cron、临时文件管理
- linux基础(十四)定时任务和管理系统的临时文件
- linux中的定时任务及延时任务
- linux中的延时定时任务管理
- Linux系统的延时及定时任务
- linux中系统延时及定时任务
- Linux系统的延时及定时任务
- linux中的定时及延时任务
- Linux system 定时及延时任务
- Linux中的定时及延时任务
- Linux中的定时及延时任务
- 171029linux中的延时及定时任务
- Blog13@linux延迟、定时任务介绍及临时文件时间更改
- ssm框架中文乱码问题
- 小程序合集2
- 全选和反选及批量删除
- Android上机实验:身高计算器的实现
- 题解报告_TSOJ_1350&&1351&&1352
- linux基础(二十)延时及定时任务、临时文件管理
- HashMap、HashTable、ArrayList、LinkedList、Vector区别
- 深度学习提速280%!阿里云性能怪兽GN6 V100 GPU实例深度测试
- do {...} while (0) 的用途汇总(欢迎补充)
- excel做heatmap
- JUnit单元测试
- 2017-11-09
- 为什么都用linux当后台服务器
- redis基础知识