Linux_红帽8学习笔记分享_7(Crontab计划任务+NTP时间同步服务器)
文章目录
- Linux_红帽8学习笔记分享_7(Crontab计划任务+NTP时间同步服务器)
- 1. 系统时间
- 1.1查看系统时间
- 1.2设置系统时间
- 2.周期性计划任务
- 2.1认识周期性任务服务
- 2.2寻找定时文件的配置文件
- 2.3用户定时任务的格式
- 2.4设置用户定时任务的步骤
- 2.4.1为张三编写定时关机任务
- 2.4.2为李四编写每分钟进行一个重定向任务
- 2.6管理员对用户定时任务的管理方法
- 2.6.1查看用户定时任务
- 2.6.2修改用户定时任务
- 2.6.3删除用户定时任务
- 2.6.4模拟其他用户
- 2.7用户定时任务的高级管理技巧
- 2.7.1黑名单文件
- 2.7.2白名单文件
- 3. 系统定时任务
- 3.1系统定时任务的工作目录
- 3.2 anacron系统
- 4. 一次性临时计划任务at
- 4.1建立一次性任务的相关操作
- 4.2一次性任务更丰富的用法
- 4.3一次性任务的黑名单
- 5. timedatectl命令的用法
- 5.1查看时区
- 5.2修改时区
- 5.3如何倒查某个服务的配置文件
1. 系统时间
1.1查看系统时间
我可以使用date来查看系统时间,如下图所示。
我们同样可以使用timedatectl来查看系统时间,如下图所示。
其中NTP service中N是network网络,T是time时间,P是protocol协议,可以看到我们的这个网络时间同步服务器是开启状态。
1.2设置系统时间
直接设置时间是不可取的,因为NTP是在运行的,如下图所示会报错。
我们首先需要需要把NTP服务关掉,如下图所示。
这个时候我们在设置时间就成功,如下图所示。
我们对于子虚拟机servera设置时间时也是这样操作,先将NTP服务关掉再设置时间。
2.周期性计划任务
2.1认识周期性任务服务
我们首先要保证crond.service是启动(一般是开机自启),我们查看一下周期性计划任务的服务状态,如下图所示。
我们可以将它设置为永久开机自启动,如下图所示。
2.2寻找定时文件的配置文件
我们在已安装的软件包中查看包含cron的软件包,如下图所示。
接下来,我们查找这个文件的配置文件,如下图所示。
2.3用户定时任务的格式
我们查看这个配置文件的内容,如下图所示。
minute表示分钟(可以填写的数字为0-59),整点用0表示;hour表示小时(可以填写的数字为0-23),是24小时制;day表示一个月第几天(可以填写的数字为1-31);mouth表示月份(可以填写的数字为1-12),也可以说还有英文来表示第几月;DayofWeek表示的是星期几(1-5表示从周一持续到周五);command表示的是我们要执行的命令是什么,比如输入shutdown就是要关机
2.4设置用户定时任务的步骤
首先我们使用su –来跳转到我们要设置的用户身上,接下来使用crontab -e来编辑定时任务,使用crontab –l用列表显示一下定时任务,最后不想要这个任务的时候可以使用crontab –r来将定时任务删除掉。
在实验之前,要保证用户已经创建好,如下图所示。
2.4.1为张三编写定时关机任务
接下来我们为张三的servera机器编写周期任务,如下图所示。
在文件中输入内容如下图所示
在使用crontab –l用列表显示一下定时任务,如下图所示。
其中*表示任意一天,任意一月都匹配。我们在使用crontab –r来将定时任务删除掉,这个删除代表全部内容的删除。如下图所示。
我只想要删除某一行,需要使用crontab -e进入编辑后单独删除。
注意:在配置文件中可以书写多行,每一行代表一个周期性任务。
我们在添加command命令的时候可以加绝对路径,接下来我们使用which查看一下shutdown的绝对路径是什么,如下图所示。(which可以用来搜索命令的绝对路径)
所以我们刚刚的command命令的完整的写法是/usr/sbin/shutdown –h now。
2.4.2为李四编写每分钟进行一个重定向任务
我们就以将时间重定向到一个txt文件中为测试,这个命令如下所示。
我们切换到李四身份,在serverad的cron配置文件中去这样写,如下图所示。
我们查看这个txt文件的内容,如下图所示,它将每一分钟都保存了下来。
同样的我们在写一条每隔两小时的定时任务,配置文件书写内容如下图所示,在小时中写/2代表着每隔两小时执行一次。
我们写一条每隔10分钟发送一次时间的定时任务,配置文件书写内容如下图所示。
其中/10代表着每隔10分钟。
我们写一条周一至周五的一点三点九点每隔10分钟发送一次时间的定时任务,配置文件书写内容具体如下图所示。
其中用逗号来分隔特点的时间,1,3,9就代表一点三点九点。
同样我们写一个每年2月2日上午9点执行echo hello的定时任务,配置文件书写内容具体如下图所示。
每天3:00~6:02执行一个脚本/root/1.sh,配置文件书写内容具体如下图所示。
每两个小时的第2分钟执行一个脚本,配置文件书写内容具体如下图所示。
注意:朝九晚五的每一分钟要在小时处写成9-16,如果写成9-17,因为前面的分钟是所以会将17:59之前的时间也包含进去,对于前面写的朝九晚五每隔10分钟也应该写成9-16
2.6管理员对用户定时任务的管理方法
/var/spool/cron是用户定时任务的工作目录(能够进行查看;修改;删除)
2.6.1查看用户定时任务
进入这个目录之后,我们使用ll,会看到有两个用户的文件,我们使用cat查看李四用户,发现就是之前写的定时任务配置文件的内容,如下图所示。
所以这个目录就是存放所有用户的定时文件的,只要你在这个用户身上写过定时任务,它就会在这里面显示同名文件。
2.6.2修改用户定时任务
我们可以在这个目录下输入vim用vim编辑器里来修改指定用户的定时任务,如下图所示。
修改之后用该用户的身份去查看他的定时文件时,会发现配置文件已经被修改。
2.6.3删除用户定时任务
我们可以使用rm -f来暴力删除指定用户的定时任务,如下图所示。
删除之后用该用户的身份去查看他的定时文件时,会发现这个配置文件已经被删除。
2.6.4模拟其他用户
管理员可以模拟某个用户的身份来直接操作定时任务,如下图所示,就是模拟李四的身份进行一系列的操作。
2.7用户定时任务的高级管理技巧
2.7.1黑名单文件
我们在黑名单中写入李四,如下图所示。
之后使用李四的身份去查看他的定时任务列表,如下图所示,会发现不能再看到自己的定时任务了。
如果想要允许李四拥有自己的定时任务,我们就需要再次编辑黑名单,将写入的李四删除掉即可。
2.7.2白名单文件
在使用搬运单之前,我们首先需要将黑名单删除掉,然后创建白名单文件,如下图所示。
创建好文件后,我们在白名单文件中写入张三和李四,如下图所示。
我们再切换到张三和李四的身份下,使用crontab命令,如下图所示,发现都被允许使用。
注意:黑名单和白名单,二者只能择其一使用,黑名单就是进入黑名单的用户,被禁止使用定时任务;而白名单就是只有在白名单中的用户,才可以使用定时任务。
在红帽企业6等等,像这样的老版本中,我们设置了黑名单和白名单之后,需要输入systemctl restart crond指令让你定时任务服务重启一下,才能够让黑名单和白名单生效,如下图所示。
3. 系统定时任务
3.1系统定时任务的工作目录
/etc/cron.daily/ 该目录下的脚本文件每天会自动运行一次(触发时间:4:22)
/etc/cron.hourly./该目录下的脚本文件每小时(第一分钟)会自动运行一次
/etc/cron.weekly 该目录下的脚本文件每星期(周日的4:22)会自动运行一次
/etc/cron.monthly.该目录下的脚本文件每个月(1号的4:22)会自动运行一次
如上图所示,在/etc/cron.daily/下有一个logrotate是一个日志回滚脚本文件,它能够检查我们的日志文件,会将老的旧的大的日志文件替换为新的日志文件,保证日志文件不超过500MB
3.2 anacron系统
如上图所示,它能够帮忙检查是否存在因断电而终止的定时任务。原理:系统定时任务的触发时间由于某种原因(例如停电)而错过了,anacron系统会保证系统定时任务工作目录下的脚本会弥补运行的一种机制。
4. 一次性临时计划任务at
首先我们要保证这个服务是运行状态,如下图所示。
它的核心配置文件如下图所示。
4.1建立一次性任务的相关操作
接下来我们建立一个一次性任务,如下图所示。
我们可以使用at –l来查看写的一次性任务,如下图所示。(如果这个任务已经已经完成了,那么我们用at -l这个命令是看不到之前的任务的。)
我们可以使用at –c 序号来查看任务详细内容。(序号)
如下图所示,我们的任务已经完成了。
与此同时这个任务也已经消失了,如下图所示。
4.2一次性任务更丰富的用法
如果想要删除一次性任务。使用at –d 序号即可,等效于atrm –序号。
如果我们想要这个定时任务,是在明天执行。我们在at后写 时间 tomorrow即可,其中如果时间表示是上午,那么可以写+具体时间am,如下图所示。命令可以用echo ,但是要注意echo 命令在指定时间会执行,但是无法看到效果,因为不是在当前shell执行的。
我们想要这个定时任务,是在三天后执行。我们在at后写 时间 3 days即可,其中如果时间表示是下午,那么可以写具体时间+pm,如下图所示。
4.3一次性任务的黑名单
它位于/etc/at.deny目录。
5. timedatectl命令的用法
我们可以使用timedatectl命令来查看系统时间,如下图所示,我们现在的是上海的时区。
5.1查看时区
我们查看全世界的时区,如下图所示。
我们不区分大的小写的查找一下亚洲的时区,如下图所示。
5.2修改时区
我们从上海时区改到了东京时区,具体操作如下图所示。
同样我们也可以改回来市区,如下图所示。
接下来我们将linux的时间改为我们现在的时间,如下图所示。
当然在这之前我们已经将NTP服务关闭了。
我们打开NTP服务看到System clock synchronize写着yes,证明时间已经被同步了,如下图所示。
我们可以验证当前使用的是哪个时钟同步服务器,如下图所示,它是由由classroom.example.com来更新的。
5.3如何倒查某个服务的配置文件
rpm -qf可以用来查看指定服务源于哪个包。
rpm -qc 可以用来查看指定包的相关配置文件。首先我们找一下哪4个模块包含ntp服务,如下图所示。
我们查看这个chronyd.service服务,如下图所示,默认都是运行状态。
我们根据如上图得到的绝对路径,倒查下他的软件包是谁,如下图所示。
接下来我们调查这个软件包对应的配置文件,如下图所示。
我们编辑/etc/chrony.conf这个文件,如下图所示。
将内容server 172.25.254.257 iburst,更改为server 172.25.254.250 iburst,如下图所示。
之后我们重启一下服务,之后再查看我们服务器的源头,发现是foundation0如下图所示。
我们使用timedatectl查看,我说是发现他确实是foundation0作为源头提供的ntp服务。
以上就是本文全部内容,如果它对您有帮助,请您帮我点个赞,这对我真的很重要