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

[复制链接]
发表于 2025-5-3 15:06:08 | 显示全部楼层 |阅读模式
延时使命

   在系统中我们的维护工作大多数时在服务器行对闲置时进行
  我们必要用耽误使命来办理自动进行的一次性的维护 耽误使命时一次性的,不会重复实行
  当耽误使命产生输出后,这些输出会以邮件的情势发送给耽误使命发起者
  在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>(想要延时使命实行的时间)

  1. 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        删除延时使命

  1. at -r <对应的延时任务序号>
复制代码

-d        删除对应代号的延时使命


-v        显示延时使命将会在何时实行



-V        查看at的版本


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



-f        从文件中读取作作业


-m        使命完成后给用户发送

安装postfix

  1. dnf install postfix.x86_64
复制代码

 安装s-nail

  1. 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

先关闭时间同步

  1. systemctl stop chronyd.service
复制代码

更改主机时间

  1. timedatectl set-time "yyyy-mm-dd hh:mm:ss"
复制代码
这里成功更改主机时间为2077-7-7 7:07:07

手动更改主机时区

查看时区地区表

  1. timedatectl list-timezones
复制代码

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



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

 手动更改主机时间模式

  1. timedatectl set-local-rtc <true/false>
复制代码
 启用本地时间模式


将 RTC 设置为UTC模式


更改授时源

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

vim /etc/chrony.conf

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


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

  1. systemctl restart chronyd.service
复制代码
重启后还必要稍等服务器同步时间



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5

GMT+8, 2025-7-9 04:51 , Processed in 0.084304 second(s), 31 queries 手机版|qidao123.com技术社区-IT企服评测▪应用市场 ( 浙ICP备20004199 )|网站地图

快速回复 返回顶部 返回列表