Linux操作系统(Crontab计划任务+NTP时间同步服务器)
如何修改linux系统时间
与时间相关的命令,查看当前的时间
运行 date 即可
cal 查看当前月份的日历
运行 timedatectl 查看时间详细参数
( NTP: network time protocol 网络时间协议 )
( local time : 本地时间 )
如何设置机器时间
设置系统时间为15:08: timedatectl set-time 15:08
关闭ntp: timedatectl set-ntp false
周期性计划任务(定时任务)crontab
用户的定时任务
systemctl status crond.service 查看周期性计划任务的服务状态running
systemctl start crond.service 开启周期性计划任务的服务状态
systemctl enable --now crond 设置周期性计划任务crond开机自启动,并且当前立即开启
用户定时任务的格式:Minute Hour Day Month DayOfWeek Command
如何倒查定时任务格式:
rpm -qa | grep cron
//在所有已安装的包中搜索包含cron的软件包 ,找到
crontabs-1.11-16.20150630git.el8.noarch
rpm -qc crontabs-1.11-16.20150630git.el8.noarch
//查看crontabs-1.11-16.20150630git.el8.noarch 包相关的配置文件,可以找到配置文件/etc/crontab
vim /etc/crontab
//查看配置文件
设置用户定时任务的步骤:
切换用户身份contab 命令( -e ; -l -r )
例:
crontab -e //录入定时任务
crontab -l //列表显示定时任务
crontab -r //删除定时任务 ( 删的是所有的定时任务 )
拓展知识:查找命令的绝对路径 which 命令
实例:
zhangsan用户周一至周五每天下午5点整关机
删除zhangsan的定时任务
管理员root对用户定时任务的管理方法:
方法一:/var/spool/cron 用户定时任务的工作目录( 查看;修改;删除 )
方法二:crontab -u lisi -l |-e | -r ( 模拟某个用户身份 )
用户定时任务的高级管理技巧
黑名单和白名单的用法:( 黑名单和白名单择其一使用 )
系统默认有黑名单,若用白名单首先删除黑名单
黑名单文件: /etc/cron.deny
用法:vim /etc/cron.deny
( 在黑名单文件输入用户名,那么该用户的定时任务被禁用 )
( 从黑名单文件删除用户名,那么该用户的定时任务可正常使用 )
白名单文件: /etc/cron.allow
( 放在白名单里的用户可以用定时任务 )
重启定时任务:systemctl restart crond
系统定时任务的用法:
系统定时任务的工作目录:
/etc/cron.daily //该目录下的脚本文件每天会自动运行一次(触发事件4:22)
/etc/cron.hourly //该目录下的脚本文件每小时(第一分钟)会自动运行一次
/etc/cron.monthly //该目录下的脚本文件每个月(1号的4:22)会自动运行一次
/etc/cron.weekly //该目录下的脚本文件每星期(周日的4:22)会自动运行一次
anacron系统
原理:系统定时任务的触发事件由于某种原因(例如:停电)而错过了,anacron系统会保证系统定时任务工作目录下的脚本会弥补运行这一机制。
一次性定时任务( at )
systemctl status atd //一次性计划任务at的服务名称叫atd
rpm -q at //查询at是否安装,软件包信息
rpm -qc at //查询at服务的配置文件
建立一次性计划任务 ( ctrl+d结束一次性计划任务的录入 )
应用:
查看一次性计划任务:at -l
查看一次性计划任务的内容:at -c number //任务内容的倒数第3行
删除一次性计划任务:at -d number
at 17:20 tomorrow //设置明天下5:20的定时任务
at 5:10pm+3 days //设置3天后下午5:10的定时任务
timedatectl命令用法
列出时区信息q退出:
timedatectl list-timezones
timedatectl list-timezones | grep -i to //-i忽略大小写
设置时区:
timedatectl set-timezone Asia/Tokyo //设置系统时区
timedatectl
同步ntp服务器
开启ntp服务器: timedatectl set-ntp true
查询ntp服务来源于哪个系统模块:( 结果显示:chronyd.service模块 )
systemctl list-units | grep -i ntp
systemctl status chronyd.service //查看chronyd.service的状态为running,
并且上面显示了其服务文件为/usr/lib/systemd/chronyd.service
systemctl start chronyd.service
systemctl enable --now chronyd.service
rpm -qf /usr/lib/systemd/chronyd.service //查看该服务源于哪个包,这里是chrony-3.3-3.el8.x86_64
rpm -qc chrony-3.3-3.el8.x86_64 //查看包chrony-3.3-3.el8.x86_64的相关配置文件,可以找到配置文件/etc/chrony.conf
vim /etc/chrony.conf
如何设置NTP服务客户端(在servera上做实验)
timedatectl set-ntp true //开启NTP时间同步
timedatectl //查看NTP服务的状态为active
systemctl status chronyd.service //查看NTP时间同步服务是否运行
vim /etc/chrony.conf //编辑NTP服务指向文件
server 172.25.254.250 iburst //设置时钟同步服务器是172.25.254.250,也可以设置成172.25.254.254或者classroom.example.com
systemctl restart chronyd.service //重启chronyd服务,即NTP服务
timedatectl //查看system clock synchronized的值是否为yes
chronyc sources -v //验证当前使用的是哪个时钟同步服务器