当前位置: 首页 > news >正文

Linux中的系统延时任务和定时任务与时间同步服务和构建时间同步服务器

延时任务

在系统中我们的维护工作大多数时在服务器行对闲置时进行

我们需要用延迟任务来解决自动进行的一次性的维护 延迟任务时一次性的,不会重复执行

当延迟任务产生输出后,这些输出会以邮件的形式发送给延迟任务发起者

在RHEL9中默认系统中的所有普通用户都可以发起延时任务

at命令

格式

at <参数> <时间>

参数

不加参数直接跟<时间>在指定的时间执行延时任务
now + <num> <min/hours/days/weeks>从现在开始num<minutes/hours/days/weeks>后执行延时任务
-m当任务完成之后,即使没有标准输出,将给用户发送邮件
-l (atq)可列出目前系统上面的所有该用户的at调度
-d  (atrm)可以取消一个在at调度中的工作
-v使用较明显的时间格式,列出at调度中的任务列表
-c可以列出后面接的该项工作的实际命令内容
-f从文件中读取作作业

其中不加参数直接跟时间的格式可以为

HH:MM

HH:MM YYYY-MM-DD

at + <hh:mm>(想要延时任务执行的时间)

at <时间>

如图我在19:12:40的时候想在19:14执行延时任务 

[root@localhost ~]# at 19:14
warning: commands will be executed using /bin/sh
at> touch /mnt/vb{1..5}
at><EOT>
job 1 at Tue Apr 22 19:14:00 2025

在编写完延时任务后,我们需要回车进入下一行然后按下ctrl + D结束编写延时任务,并生成延时任务进入延时任务队列。 

当时间来到19:14:01时,延时任务已经自动执行完毕,生成了对应的文件。

now+<num>min        在输入at命令回车的那一刻延时n分钟后的任务

非交互执行at延时任务

在任意位置用vim编写一个脚本文件

使用多行重定向输入

使用sh命令执行脚本文件,就可以实现非交互式生成延时任务并执行 

-r        删除延时任务

at -r <对应的延时任务序号>

-d        删除对应代号的延时任务

-v        显示延时任务将会在何时执行

-V        查看at的版本

-c        可以列出后面接的该项工作的实际命令内容

-f        从文件中读取作作业

-m        任务完成后给用户发送

安装postfix
dnf install postfix.x86_64

 安装s-nail
 dnf install s-nail.x86_64

 touch命令的执行后是不会返回输出信息到终端的

但是-m参数会强制执行at任务后无论是否返回输出信息都发送邮件给用户

 可以用mail来查看邮件

按数字顺序编号进行查看第几封邮件
用q键退出mail模式

延迟任务的安全优化

/etc/at.deny        使用at的黑名单

/etc/at.allow        使用at的白名单

注意:初始的主机是没有at.allow这个文件的!如有需要则要用户自己创建

一旦创建了at.allow这个文件,所有用户都会被禁止使用at命令除了root用户。

注意:当存在at.allow文件时,
at.allow文件里的用户名与at.deny文件里的用户名重复时
系统会允许那个用户执行at命令

crontab

检查crond服务是否开启

编写系统定时任务

其中* * * * *的含义是每月每周每天每小时每分钟执行一次命令

-r        删除

-i        显示删除提示

-l        列出用户的crontab

分钟小时定时效果
*****每小时的每分钟的01秒触发
*/n****每隔n分钟的01秒触发
n****每小时的过n分钟
na~b***从a点到b点中间每个小时的过n分钟
n*abc

b月a日每小时过n分

b月的每个周c的每小时过n分

注:天和周是分开约定的

0和7都表示周日

系统级别的定时任务

在/etc/cron.d/下编写定时任务

每到设定的周期时间时系统则会自动执行 

 如图来到18:53时,系统自动创建了vba和vbb这两个文件

系统级别的定时任务执行完后,要记得及时删除否则会占用系统资源! 

手动更改主机时间

查看当前主机的时间

timedatectl

先关闭时间同步

systemctl stop chronyd.service

更改主机时间

timedatectl set-time "yyyy-mm-dd hh:mm:ss"

这里成功更改主机时间为2077-7-7 7:07:07

手动更改主机时区

查看时区地区表

timedatectl list-timezones

从时区地区表选择地区进行更改

同理更改为其他地区也是可以的,下图更改为了阿曼 

 手动更改主机时间模式

timedatectl set-local-rtc <true/false>

 启用本地时间模式

将 RTC 设置为UTC模式

更改授时源

编写系统中配置 Chrony 服务的配置文件

vim /etc/chrony.conf

将框住的部分更改为网络上能找到的授时源

重启chronyd.service服务让主机与授时服务器重新同步时间

systemctl restart chronyd.service

重启后还需要稍等服务器同步时间

相关文章:

  • 大模型的scaling laws:Scaling Laws for Neural Language Models
  • Prompt Engineering 提示工程:释放大语言模型潜力的关键技术与实践指南
  • 大语言模型(LLMs)微调技术总结
  • TensorFlow深度学习实战——基于循环神经网络的文本生成模型
  • es+kibana---集群部署
  • vscode 使用gitcode团队管理项目
  • 推荐一个微软官方开源浏览器自动化工具,可以用于UI自动化测试、爬虫等,具备.Net、Java、Python等多个版本!
  • Flutter介绍、Flutter Windows Android 环境搭建 真机调试
  • Python实现SSE流式推送
  • 【蒸馏(5)】DistillBEV代码分析
  • 关于华为云OneAccess登录认证过程介绍
  • 论文阅读_Search-R1_大模型+搜索引擎
  • Maven多模块工程版本管理:flatten-maven-plugin扁平化POM
  • 深入浅出限流算法(二):更平滑的滑动窗口
  • MATLAB小试牛刀系列(1)
  • 【前端】1h 搞定 TypeScript 教程_只说重点
  • 并发设计模式实战系列(8):Active Object
  • ArcPy 中的地理处理工具
  • 微信小程序开发笔记
  • C++学习:六个月从基础到就业——模板编程:SFINAE原则
  • 君亭酒店:2024年营业收入约6.76亿元, “酒店行业传统增长模式面临巨大挑战”
  • 十四届全国人大常委会举行第四十三次委员长会议 ,听取有关草案和议案审议情况汇报
  • 中国黄金协会:一季度我国黄金产量同比增1.49%,黄金消费量同比降5.96%
  • 坚守刑事检察一线13年,“在我心中每次庭审都是一次大考”
  • 民调显示特朗普执政百日支持率为80年来美历任总统最低
  • 江西省宁都县政协原二级调研员谢亦礼被查