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

Linux---对时/定时服务

文章目录

  • 目录

    文章目录

    前言

     一.对时服务

    服务端配置

    客户端配置 

    二.定时服务

    单次定时任务

     循环定时任务


前言

        在当今信息化高速发展的时代,时间的准确性和任务的定时执行对于各种系统和服务来说至关重要。Linux操作系统,凭借其强大的功能和灵活的配置,成为了众多服务器和应用的首选平台。其中,对时服务和定时任务管理更是Linux系统中不可或缺的重要功能。


 一.对时服务

        Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。

        NTP 是网络时间协议通过 udp 123 端口进行网络时钟同步。

安装Chrony软件 

yum install chrony -y

服务端配置

(1)使用vim 编辑器打开/etc/chrony.conf,修改如下信息:

pool 2.rhel.pool.ntp.org iburst 修改为 pool 127.0.0.1 iburst

        pool后面跟的是时间服务器,因为是服务端配置,自身就是时间服务器,所以时间服务器设置为本地IP:127.0.0.1

(2)指定允许访问的客户端

修改allow所在行,把注释符#去掉,并把后面的网段改为允许访问的网段

        服务端配置成时间服务器后,只允许192.168.23.0/24的客户端进行时间同步,如果要允许所有客户端都能向此服务器进行时间同步,可以写成allow all

(3) 配置此台服务器为ntp服务器

#local stratum 10  删除注释符号#---> local stratum 10

local stratum 10指示服务端在无法与外部时间源同步时,可以作为时间源为客户端提供服务。 

(4)重启chronyd服务并设置开机自启

[root@localhost ~]# systemctl restart chronyd.service
[root@localhost ~]# systemctl enable chronyd.service

(5)防火墙开放chrony服务的端口123和323

firewall-cmd --add-port=123/udp --permanent
firewall-cmd --add-port=323/udp --permanent
#刷新防火墙规则
firewalld-cmd --reload#也可以直接关闭防火墙
systemctl stop firewalld.service

客户端配置 

(1)使用vim 编辑器打开/etc/chrony.conf,修改如下信息:

pool 2.rhel.pool.ntp.org iburst 修改为 pool 192.168.23.145 iburst

时间源也可以使用国内的服务器如aliyun.com

pool 2.rhel.pool.ntp.org iburst 修改为 pool ntp.aliyun.com iburst

(2)重复服务端配置的第4和第5步

(3)显示系统当前配置的NTP服务器的状态信息并进行对时

chronyc sources

  •  * 表示chronyd当前同步到的源
  • + 表示可接受的信号源,与选定的信号源组合在一起
  • ? 指示已失去连接性或其数据包未通过所有测试的源。
  • Stratum 值:Stratum 是一个表示 NTP 服务器层级或准确度的数字。

  • Reach 值:Reach 值表示在过去 6 个测试周期内,时间源成功响应了多少次 Chrony 请求。

  • LastRx 值:LastRx 表示最后一次接收到该时间源数据的时间(以分钟计)

  • Last sample:这部分显示了最后一次与该时间源同步时的偏移量和其他统计数据。

二.定时服务

单次定时任务

        at 计划任务是一次性的,到了指定时间点就开始执行指定的命令,执行完成后,不会重复执行这个命令

at 命令相关配置文件:

  • /etc/at.allow,写在该文件的人可以使用at命令
  • /etc/at.deny,黑名单
  • 两个文件如果都不存在,只有root能使用

基础语法:

`at [参数] [时间]  `

 (1)查看系统中的计划任务

[root@localhost httpd]# at -l
[root@localhost httpd]# atq#计划任务保存在/var/spool/at目录下
[root@localhost ~]# ll /var/spool/at
总用量 0
drwx------. 2 root root 6 12月  1 22:32 spool

        若两个命令都没有任何输出,说明当前系统并不存在计划任务。

(2)下面开始创建计划任务 

at 日期 <按【Enter】键>
> 输入要执行的命令
Ctrl+D 提交

 案例:要在2024年12月1日执行hostname命令

[root@localhost httpd]# at 2024-12-1
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 1 at Sun Dec  1 22:17:00 2024

        这里只指定了日期,并没有指定具体时间,那么,创建这个计划任务是几点几分,就会在设置日期的几点几分执行该任务。

at 时间点 日期 <按【Enter】键>
> 输入要执行的命令
Ctrl+D 提交

 案例:在2024年12月1日22:25执行hostname命令

[root@localhost httpd]# at 22:32 2024-12-1
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 4 at Sun Dec  1 22:32:00 2024

 循环定时任务

        at计划任务是一次性的,执行完成就结束,如果想定期执行任务,就要用到crontab了。

crontab相关配置文件

(1)查看指定用户的contab计划任务

步骤一:使用root用户查看自己有没有crontab计划任务

[root@localhost at]# crontab -l
no crontab for root

步骤二:使用root用户查看tom用户是否有crontab计划任务 

[root@localhost at]# crontab -l -u zt
no crontab for zt

(2)创建计划任务 

步骤一:创建计划任务命令是crontab -e,会打开一个临时文件,可使用vim编辑。

[root@localhost at]# crontab -e

crontab定义计划任务的语法如下 :

分 时 日 月 周 命令

 案例1:每天上午7点执行hostname命令:

[root@localhost at]# crontab -e
crontab: installing new crontab
[root@localhost at]# crontab -l
0 7 * * * hostname

 案例2:每周一到周五上午7点执行hostname命令

[root@localhost at]# crontab -e
crontab: installing new crontab
[root@localhost at]# crontab -l
0 7 * * 1-5 hostname

 步骤二:为其它用户创建crontab任务

[root@localhost at]# crontab -e -u zt

总结

相关文章:

Linux---对时/定时服务

文章目录 目录 文章目录 前言 一.对时服务 服务端配置 客户端配置 二.定时服务 单次定时任务 循环定时任务 前言 在当今信息化高速发展的时代&#xff0c;时间的准确性和任务的定时执行对于各种系统和服务来说至关重要。Linux操作系统&#xff0c;凭借其强大的功能和灵活的…...

Agent

Agent核心 1、自主性 2、交互性 3、适应性 4、目的性 ReAct Reasoning and Acting范式 模型的推理过程分为 推理 Reason 和行动 Action 两个步骤&#xff0c;交替执行&#xff0c;直至获得最终结果。 推理 Reason 生成分析步骤&#xff0c;解释当前任务的上下文或状态…...

Oracle 数据库执行增删改查命令的原理与过程

摘要&#xff1a; 本文深入探讨当向 Oracle 数据库发送一个增删改查&#xff08;CRUD&#xff09;命令时&#xff0c;数据库内部的执行机制与详细过程。从用户发起命令开始&#xff0c;逐步剖析命令在 Oracle 数据库体系结构各组件中的流转、解析、优化以及执行路径&#xff0c…...

HBase难点

查询优化 一次Scan会返回大量数据&#xff0c;客户端向HBase发送一次Scan请求&#xff0c;实际上并不会将所有数据加载到本地&#xff0c;而是通过多次RPC请求进行加载&#xff0c;防止客户端OOM。禁止缓存优化&#xff1a;批量读取数据时会全表扫描一次业务表&#xff0c;这种…...

Y20030023 PHP+thinkphp+MYSQL+LW+基于PHP的健身房管理系统的设计与实现 源代码 配置 初稿

基于PHP的健身房管理系统 1.项目摘要2. 系统开发的背景及意义3.项目功能4.界面展示5.源码获取 1.项目摘要 近年来&#xff0c;随着社会发展和科技进步&#xff0c;人们越来越重视健康养生并关注电子商务对日常交流方式的影响。随着健身行业消费人群的增加&#xff0c;竞争变得…...

mongodb下载与使用

下载地址&#xff1a; Install MongoDB Community Kubernetes Operator | MongoDB 1、安装MongoDB (5.0.30) 将压缩包移动到C:\Program Files 下&#xff0c;然后解压创建C:\data\db目录&#xff0c;mongodb 会将数据默认保存在这个文件夹以mongodb 中 bin目录作为工作目录&…...

【Linux基础】Linux基本指令

目录 1、pwd 指令 2、clear 指令 3、ls 指令 1、ls 显示当前路径下的文件或者目录名称 2、ls -l 显示当前路径下的文件或者目录的更详细的属性信息 3、ls -a &#xff1a;显示所有文件&#xff0c;包括隐藏文件 4、ls -d 将目录像文件一样显示&#xff0c;而不是显示其…...

【RISC-V CPU debug 专栏 3 -- Debugging RISC-V Cores】

文章目录 RISC-V 调试规范开源与多样性挑战调试规范的重要性外部调试支持的主要组件调试功能Lauterbach 的贡献RISC-V 调试规范 调试 RISC-V 内核涉及许多独特的挑战,这是由 RISC-V 的开源特性和多样化的生态系统所决定的。为了避免专有调试接口的泛滥,RISC-V 基金会内的工作…...

思科实现网络地址转换(NAT)和访问控制列表(ACL)和动态路由配置并且区分静态路由和动态路由配置。

实验拓扑(分为静态路由和动态路由两种) 静态路由互通 动态路由互通 实验背景 这个是想实现外网与内网的连接跟网络的探讨&#xff0c;最终实现互通以及使用并且在网络地址转换后能使用网络然后再这个基础上再配置访问控制列表和网络地址转换的的学习过程。 实验需了解的知识…...

基于 Python、OpenCV 和 PyQt5 的人脸识别上课打卡系统

大家好&#xff0c;我是Java徐师兄&#xff0c;今天为大家带来的是基于 Python、OpenCV 和 PyQt5 的人脸识别上课签到系统。该系统采用 Python 语言开发&#xff0c;开发过程中采用了OpenCV框架&#xff0c;Sqlite db 作为数据库&#xff0c;系统功能完善 &#xff0c;实用性强…...

MySQL 复合查询

实际开发中往往数据来自不同的表&#xff0c;所以需要多表查询。本节我们用一个简单的公司管理系统&#xff0c;有三张表EMP,DEPT,SALGRADE 来演示如何进行多表查询。表结构的代码以及插入的数据如下&#xff1a; DROP database IF EXISTS scott; CREATE database IF NOT EXIST…...

【Leetcode】19. 删除链表的第N个节点

【Leetcode】19. 删除链表的第N个节点 1. 题目介绍2. 方法一&#xff1a;计算链表长度逻辑流程:代码复杂度分析 1. 题目介绍 题目描述 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,…...

flutter底部导航栏中间按钮凸起,导航栏中间部分凹陷效果

关键代码: Scaffold中设置floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked和extendBody: true&#xff0c; BottomAppBar中设置shape: const CircularNotchedRectangle() Scaffold(extendBody: true,//body是否延伸脚手架底部&#xff0c;在底部导航…...

<项目代码>YOLOv8 红绿灯识别<目标检测>

YOLOv8是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一个回归问题&#xff0c;能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法&#xff08;如Faster R-CNN&#xff09;&#xff0c;YOLOv8具有更高的…...

HTMLHTML5革命:构建现代网页的终极指南 - 4. 使用元素

HTML&HTML5革命&#xff1a;构建现代网页的终极指南 4. 使用元素 大家好&#xff0c;我是莫离老师。 到目前为止&#xff0c;我们已经了解了 HTML 和 HTML5 的基础概念&#xff0c;并且选择了适合自己的开发工具。 今天&#xff0c;我们将迈出实际开发的第一步&#xff0c…...

使用 Selenium 和 Python 爬取腾讯新闻:从基础到实践

使用 Selenium 和 Python 爬取腾讯新闻&#xff1a;从基础到实践 在这篇博客中&#xff0c;我们将介绍如何利用 Selenium 和 Python 爬取腾讯新闻的内容&#xff0c;并将结果保存到 CSV 文件中。本教程包含以下内容&#xff1a; 项目简介依赖安装实现功能的代码实现中的关键技…...

CAD深度清理工具-AVappsDrawingPurge9.0.0(2024.8.27版本) 支持版本CAD2022-2025-供大家学习研究参考

图形文件DWG体积很大&#xff1a;通常没有明显的数据。同时&#xff0c;还其他症状包括&#xff1a; &#xff08;1&#xff09;无法复制和粘贴图元。 &#xff08;2&#xff09;悬挂较长时间选择文本与 “特性”选项板上打开。 &#xff08;3&#xff09;图形文件需要很长时间…...

vue3+vite使用vite-plugin-electron-renderer插件和script-loader插件有冲突

报错信息&#xff1a;Error: Dynamic require of "path" is not supported 报错问题是在使用vite-plugin-electron-renderer插件不支持import动态引入&#xff0c;该报错信息并不准确&#xff0c;实际原因是vite-plugin-electron-renderer插件和script-loader插件有…...

领养我的宠物:SpringBoot开发指南

第2章 开发环境与技术 本章节对开发宠物领养系统需要搭建的开发环境&#xff0c;还有宠物领养系统开发中使用的编程技术等进行阐述。 2.1 Java语言 Java语言是当今为止依然在编程语言行业具有生命力的常青树之一。Java语言最原始的诞生&#xff0c;不仅仅是创造者感觉C语言在编…...

直击高频编程考点:聚焦新版综合编程能力考查汇总

目录 一、业务性编程和广度能力考查 &#xff08;一&#xff09;基本定义 &#xff08;二&#xff09;必要性分析 二、高频考查样题&#xff08;编程扩展问法&#xff09; 考题1: 用java 代码实现一个死锁用例&#xff0c;说说怎么解决死锁问题&#xff1f;&#xff08;高…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...