深入解析:RHCE Day2 时间管理服务器 NFS服务器

news/2026/1/25 20:18:05/文章来源:https://www.cnblogs.com/gccbuaa/p/19530414

一、时间服务器

1、简介

重要性:订单,日志,
RTC:硬件时间、系统时间:操作系统时间
设置时间的两个命令 :date timedatectl

2、命令

#date 设置时间   用来设置命令的时候 还能影响系统时间 无法修改 硬件时间
# date -s "%Y-%m-%d %H:%M:%S"
# date -s "%Y:%m:%d"
# date -s "%H:%M"
[root@server ~]# date -s "2011-11-11 11:11:11"
20111111日 星期五 11:11:11 CST
[root@server ~]# timedatectl
Local time: 五 2011-11-11 11:11:18 CST
Universal time: 五 2011-11-11 03:11:18 UTC
RTC time: 六 2025-11-01 02:13:59
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
# timedatectl 设置时间
# 如果直接set-time 会失败 原因是系统中的时间同步开启中
[root@server ~]# timedatectl set-time "2022-2-22 2:2:2"
Failed to set time: Automatic time synchronization is enabled
[root@server ~]# timedatectl
Local time: 五 2011-11-11 11:15:59 CST
Universal time: 五 2011-11-11 03:15:59 UTC
RTC time: 六 2025-11-01 02:18:29
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
# 所以首先关闭系统同步
[root@server ~]# timedatectl set-ntp 0/timedatectl set-ntp false/timedatectl set-ntp no
[root@server ~]# timedatectl
Local time: 五 2011-11-11 11:17:03 CST
Universal time: 五 2011-11-11 03:17:03 UTC
RTC time: 六 2025-11-01 02:19:29
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: inactive #系统同步服务已关闭
RTC in local TZ: no
# 关闭后再去设置系统时间,他会修改系统时间及硬件时间
[root@server ~]# timedatectl set-time "2022-2-22 2:2:2"
[root@server ~]# timedatectl
Local time: 二 2022-02-22 02:02:08 CST
Universal time: 一 2022-02-21 18:02:08 UTC
RTC time: 一 2022-02-21 18:02:08
Time zone: Asia/Shanghai (CST, +0800)
# 时间同步 当系统时间date命令或其他命令修改了,系统认为你要使用自己设定时间
# 所以他不会再去同步授时中心下发的时间,即使ntp service : active
# 如果你不想使用自定义时间而是要授时中心下发的时间那么你需要先关闭同步服务在开启同步服务
[root@server ~]# timedatectl set-ntp 0
[root@server ~]# timedatectl set-ntp 1

3、 hwclock :可以用系统时间设置硬件时间,用硬件时间设置系统时间

  hwclcok -s :使用硬件时间设置系统时间hwclock -w :使用系统时间设置硬件时间

4、 NTP及chrony

NTP:首先是一个理论,它是关于时间同步的通信协议。
chrony:就是将该ntp通信协议具体实现出来的一套软件系统。

( 1 )安装

[root@server ~]# dnf install chrony -y

( 2 )配置文件分析

[root@server ~]# /etc/chrony.conf
1 # Use public servers from the pool.ntp.org project.
2 # Please consider joining the pool (https://www.pool.ntp.org/jo    in.html).
3 pool 2.centos.pool.ntp.org iburst # 这里就是配置授时服务器的地址 iburst 表示chronyd启动时会立即进行一次同步
4
5 # Use NTP servers from DHCP. # 通过dhcp服务获取时间同步服务(前提是支持该功能的dhcp)
6 sourcedir /run/chrony-dhcp
7
8 # Record the rate at which the system clock gains/losses time.
9 driftfile /var/lib/chrony/drift # 该文件记录系统时钟的误差
10
11 # Allow the system clock to be stepped in the first three updat    es
12 # if its offset is larger than 1 second.
13 makestep 1.0 3  # 当跟授时服务器的误差超过1秒时,会进行3次快速同步
14
15 # Enable kernel synchronization of the real-time clock (RTC).
16 rtcsync
17
18 # Enable hardware timestamping on all interfaces that support i    t.
19 #hwtimestamp *
20
21 # Increase the minimum number of selectable sources required to     adjust
22 # the system clock.
23 #minsources 2
24
# 当本机作为授时服务器时 以下字段生效
25 # Allow NTP client access from local network.
26 allow 0.0.0.0/0
27
28 # Serve time even if not synchronized to a time source.
29 local stratum 10
30

实验

1、修改时间,换源,同步

# 1. 修改时间
[root@server ~]#date -s "2011-11-11 1:1:1"
# 2. 修改配置文件中授时服务器地址
[root@server ~]#vim /etc/chrony.conf
----------------------------------------------------------
3 pool ntp.aliyun.com iburst # 修改授时源
----------------------------------------------------------
# 3. 重启chronyd
[root@server ~]#systemctl restart chronyd.service
# 4.稍等片刻去观察时间是否进行了同步,如果同步成功说明 阿里云的收拾服务器设置成功

2、一台server 一台client 用client去同步错误时间的server

#服务端配置
# 1.创建时间服务器修改/etc/chrony.conf的26和29行
[root@server ~]# vim /etc/chrony.conf
----------------------------------------------------------
26 allow xxx.xxx.xxx.0/24 # 允许指定网段中主机访问
29 stratum 10 #表示当前时时钟源的第十层
----------------------------------------------------------
# 2. 重启服务
[root@server ~]#systemctl restart chronyd
# 3.将自己的时间修改为一个错误的时间
[root@server ~]#date -s "xxxx-xx-xx xx:xx:xx"
############################################################################
#客户端
# 1.修改配置文件将授时服务器指定为xxx.xxx.xxx.xxx
[root@clinet ~]#vim /etc/chrony.conf
----------------------------------------------------------
3 pool xxx.xxx.xxx.xxx iburst
----------------------------------------------------------
#2.先关闭系统的 NTP 自动时间同步再开启
[root@clinet ~]#timedatectl set-ntp 0
[root@clinet ~]#timedatectl set-ntp 1
#3.检测系统时间变化
[root@clinet ~]#watch -n 1 timedatectl
# 4.重启服务
[root@clinet ~]#systemctl restart chronyd

3、chronyc sources -v 查看授时服务器的状态

[root@client ~]# chronyc sources -v
.-- Source mode  '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^~ 172.25.254.100                2   6   377     7   -4859s[ -4859s] +/-   35ms
# ^~ :表示波动大的授时服务器
# ^* :当前最好的源,主授时源
# ^= : 同级别的授时源
# ^+ : 备用授时源
# ^- : 不适合授时源
# ^x : 有错误的授时源
# ^? : 不可用的授时源
# ^# : 本地授时源
# poll 6 : 同步周期为2^6=64
# 在2进制转为16进制中 4为二进制对应1为十六进制
# 在2进制转为8进制中 3为二进制对应1为八进制
# Reach 377: 377==>011111111 表示最近8次的同步结果如果同步结果为1,如果同步失败结果0
# LastRx :上一次同步实在多少秒前

二、 NFS服务器

1、简介

NFS:network filesystem 网络文件系统,服务端给客户端共享一个硬盘上的目录。

NFS的使用场景:将数据中心的数据共享给其他服务器,其他服务器在使用共享目录时,感受跟本地没有区别

NFS涉及到的服务 :

2、nfs的使用

(1)安装

# 客户端和服务端都安装 nfs-utils
yum install nfs-utils -y

(2)配置文件
①主配置文件 /etc/exports ,在该配置文件中,

  • 1、写入要共享目录

  • 2、要共享给谁

  • 3、被共享人所拥有权限 : ro,rw

  • 4、账户映射设定

    • root_squash(只将root映射为nobody),
    • no_root_squash(直接将客户端的root在服务器也映射为root),
    • all_squash(所有账户在服务器上都被映射为nobody)(推荐)
    • no_all_squash(除了root其他账户都不映射)
  • 5、同步/异步读写:

    • sync:同步方式,一端写入内容,另一端同步在内存和硬盘中写入同样内容,然后回执。(推荐)
    • async:异步方式,一端写入内容,另一端会将内容暂存在内存中,然后回执,只有当内存中的数据积累到一定量时再写入到硬盘。
  • 6、指定用户的映射身份

②共享控制/usr/sbin/exportfs :常用于刷新共享目录的配置信息

  • 热更新:exportfs - rv(无需重启 nfs-server 服务,即可让新配置生效的操作。)

实验:使用nfs实现一个共享目录

1、服务端建立nfs服务 客户端挂载该服务

#服务端
#1.安装nfs-utils
[root@clinet ~]#dnf install nfs-utils -y
#2.创建要共享的目录并在其中写入文件
[root@clinet ~]#mkdir /nfs_server
[root@clinet ~]#echo "hello nfs" > /nfs_server/hello.txt
#3.在/etc/exports添加要共享的目录 并指定接受共享的主机ip,该主机的权限,该主机映射为nobody,同步方式读写
[root@clinet ~]#vim /etc/exports
----------------------------------------------------------
/nfs_server xxx.xxx.xxx.xxx(rw,all_squash,sync)
----------------------------------------------------------
# 4.启动服务
[root@server ~]#systemctl enable --now nfs-server
##############################################################################
#客户端
#1.安装nfs-utils
[root@clinet ~]#dnf install nfs-utils -y
#2.创建接受共享的目录
[root@clinet ~]#mkdir /nfs_client
#3.将服务端的目录挂在到nfs_client下
[root@clinet ~]#showmount -e xxx.xxx.xxx
[root@clinet ~]#mount xxx.xxx.xxx:/nfs_server /nfs_client

2、尝试写文件,如果不行为什么

#因为此时客户端的用户身份被映射为了服务器上的nobody,而nobody没有写文件的权限,所以无法创建。
[root@server nfs_server]# chmod 777 .

3、将客户端的账户映射为redhat

# 以下操作是建立在实验1的基础之上
#服务器
# 1.修改/etc/exports文件
[root@server ~]#vim /etc/exports
-----------------------------------------------------------------------------
/nfs_server xxx.xxx.xxx.xxx/xx(rw,all_squash,sync,anonuid=1000,anongid=1000)
-----------------------------------------------------------------------------
# 2.使用exportfs命令更新共享目录的设置(热更新)
[root@server ~]#exportfs -rv
############################################################################
# 客户端
# 此时在共享目录中创建新的文件 观察该文件属于谁
[root@client nfs_client]# touch 333
[root@client nfs_client]# ll
总用量 8
-rw-r--r-- 1 redhat redhat  0 1028 16:51 333
-rw-r--r-- 1 root   root   10 1028 15:32 hello.txt
-rw-r--r-- 1 nobody nobody 22 1028 15:55 thanks.txt

3、 自动挂载

本质:惰性挂载

( 1 )autofs
默认情况下autofs会将共享目录挂在到net目录下,当你进入到指定ip的目录那一瞬间时autofs会自动将该ip中的共享目录挂载到指定ip的目录下。
❗autofs还支持自动卸载

  • 配置文件/etc/autofs.conf
    • 在这个文件中 我们可以修改自动卸载的时长
  • 配置文件/etc/auto.master
    • 在这个文件中我们可以指定自动挂载的目录

实验

1、实现自动挂载

# 客户端
# 1.将之前做的实验取消挂载
[root@clinet ~]# umount /nfs_client
# 2.安装autofs
[root@clinet ~]#dnf install autofs -y
#3.开启
[root@clinet /]# systemctl start autofs
# 4. 进入/net/xxx.xxx.xxx.xxx/nfs_server,观察是否报错
[root@clinet /]# vim /net/192.168.10.100/nfs_server
# 5. 如果没有报错并且可以查看到 服务端的共享目录中文件 那么说明自动挂载出发成功
# 6.修改自动卸载的时长
[root@clinet ~]#vim /etc/autofs.conf
----------------------------------------
timeout = 5
----------------------------------------
# 7.重启autofs
[root@clinet /]#systemctl restart autofs
# 8.进入/net/xxx.xxx.xxx.xxx/nfs_server,再回到根目录
[root@clinet /]# cd /net/192.168.10.100/nfs_server
[root@clinet nfs_server]# df
文件系统                      1K-块    已用     可用 已用% 挂载点
devtmpfs                       4096       0     4096    0% /dev
tmpfs                        886588       0   886588    0% /dev/shm
tmpfs                        354636    5240   349396    2% /run
/dev/mapper/rhel-root      17141760 1763564 15378196   11% /
/dev/nvme0n1p2               983040  221248   761792   23% /boot
/dev/nvme0n1p1               613184    7140   606044    2% /boot/efi
tmpfs                        177316       0   177316    0% /run/user/0
192.168.10.100:/nfs_server 17141760 1763328 15378432   11% /net/192.168.10.100/nfs_server
[root@clinet nfs_server]# cd /
# 9.第一时间df 查看挂载信息
[root@client /]# df
文件系统                      1K-块    已用     可用 已用% 挂载点
。。。。
172.25.254.100:/nfs_server 42467328 1988352 40478976    5% /net/172.25.254.100/nfs_server
# 10.过5秒钟 再使用df命令 发现工项目 已经卸载了
[root@client /]# df
文件系统                 1K-块    已用     可用 已用% 挂载点
devtmpfs                  4096       0     4096    0% /dev
tmpfs                   872836       0   872836    0% /dev/shm
tmpfs                   349136    5284   343852    2% /run
/dev/mapper/rhel-root 42467328 1990920 40476408    5% /
/dev/sda2               983040  200180   782860   21% /boot
/dev/mapper/rhel-home 20701184  177448 20523736    1% /home
/dev/sda1               613160    7140   606020    2% /boot/efi
tmpfs                   174564       0   174564    0% /run/user/0

2、实现指定目录的自动挂载

# 1.修改/etc/auto.master 新增自动挂载的目录 并指定该目录的子配置文件
[root@clinet net]# vim /etc/auto.master   在此文件里添加以下内容
---------------------------------------------
/nfs_auto    /etc/auto.nfs_auto
---------------------------------------------
# 2.实现一下子配置文件/etc/auto.nfs_auto
[root@clinet net]# vim /etc/auto.nfs_auto
---------------------------------------------
fromserver 192.168.10.100:/nfs_server
----------------------------------------------
# 3.重启autofs
[root@clinet net]# systemctl restart autofs
# 4.重启过会发现 根目录中自动创建了 /nfs_auto目录 我们进入其中的fromserver 那就是服务端共享目录
[root@client /]# cd /nfs_auto/fromserver
[root@client fromserver]# ls
333  444  hello.txt  thanks.txt

3、实现光盘挂载

#1、编辑/etc/auto.master,添加光盘挂载规则
[root@client fromserver]# vim /etc/auto.master    在此文件里添加以下内容
----------------------------------------------
/media       /etc/auto.media
----------------------------------------------
#2、编辑/etc/auto.media,定义光盘挂载规则
[root@client fromserver]#systemctl restart autofs vim /etc/auto.media
----------------------------------------------
cdrom -fstype=iso9660 :/dev/sr0
----------------------------------------------
#3、重启autofs服务
[root@client fromserver]#systemctl restart autofs
#4、触发自动挂载并验证
[root@client fromserver]#cd /media/cdrom
[root@clinet cdrom]# ls

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1215645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JMeter吞吐量控制器用法详解:精准模拟用户行为比例与流量分配 - 实践

JMeter吞吐量控制器用法详解:精准模拟用户行为比例与流量分配 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &q…

Java计算机毕设之基于springboot的社会养老平台的设计与实现基于Springboot的智慧老年人中心服务平台的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

还原论霸权是反真共识,反人类

逻辑的纯粹性:还原论霸权的反人类本质 已精准揭示: “还原论霸权是反共识,反人类。” 这是逻辑的必然,非情绪。 还原论霸权的逻辑本质:对真理认知的系统性破坏 公理: 人类文明进步 依赖对真理的客观认…

.NET 8 高并发避坑指南:彻底搞懂 Async/Await、多线程与 Channel 黄金模式

🛑 写在前面 你是否认为给方法加上 async 关键字,它就会自动变成多线程执行? 你是否在 while 循环里写过 await HandleAsync(),结果发现服务器处理速度慢如蜗牛? 你是否纠结过 Task.Run、Thread 和 await 到底该用哪个…

MySQL升级8.0.44后登录报错-系统表不支持MyISAM存储引擎

一、故障现象 近期我们公司内部网络安全排查中,发现其中一个业务系统使用的是mysql8.0.11,存在几个高风险漏洞,经评估决定对其升级到最新版本MySQL8.0.44。升级后出现数据库无法远程登录,即使输入正确的密码也提示…

多策略黑猩猩优化算法研究及其工程应用 黄倩 MATLAB代码 针对基本黑猩猩优化算法存在的依赖...

多策略黑猩猩优化算法研究及其工程应用 黄倩 MATLAB代码 针对基本黑猩猩优化算法存在的依赖初始种群、易陷入局部最优和收敛精度低等问题,提出一种多 策略黑猩猩优化算法(Chaotic Elite Opposition-Based Simple Method Improved COAEOSMICOA&#xff09…

吐血推荐8个AI论文网站,专科生轻松搞定毕业论文!

吐血推荐8个AI论文网站,专科生轻松搞定毕业论文! 专科生的救星:AI工具如何改变论文写作方式 随着人工智能技术的不断发展,越来越多的专科生开始借助AI工具来提升论文写作效率。尤其是在当前AIGC(人工智能生成内容&am…

小白也能学会!本地部署大模型全攻略:从CUDA配置到ChatGLM-6B运行

本文详细介绍了在Ubuntu 18.04环境下部署大模型的全流程,包括GPU环境配置(CUDA和cuDNN安装)、ChatGLM-6B模型的下载与部署。文章提供了实用的避坑建议、环境检查命令、量化版本选择指南以及详细的部署步骤,帮助读者快速搭建自己的…

小白也能学会!vLLM本地部署大模型完整教程

本文详细介绍使用vLLM在本地部署大语言模型的完整流程,包括创建虚拟环境、通过ModelScope下载Qwen/Qwen3-0.6B模型、配置并运行LLM服务器,以及通过OpenAI兼容API接口调用本地模型。文章提供详细命令代码和使用示例,帮助读者实现本地大模型的部…

一文读懂AI Agent:大模型时代的智能体技术与应用场景全解析,面了字节大模型岗

本文全面介绍了AI Agent的概念、发展及框架。AI Agent作为大模型的延伸,具备自主性、反应性等特征,通过控制端(推理规划)、感知端(多模态输入)和行动端(工具使用)实现复杂任务处理。应用场景包括单代理任务执行、多代理协作及人机交互。文章讨论了AI Age…

深入理解Agentic RAG:从检索增强到智能体驱动的技术演进(建议收藏)

文章介绍了Agentic RAG技术,即智能体检索增强生成,这是传统RAG的进阶版本。它将AI智能体嵌入RAG流程,具备自主决策、交互式扩展和反馈回路等特性,通过反思、规划、工具使用和多体协作等模式提升性能。文章还介绍了多种进阶架构&am…

深入理解LLM三大核心技术:Function Calling、MCP与A2A实战指南

文章详细解析了大型语言模型(LLM)中的Function Calling、MCP和A2A三大核心技术。Function Calling通过监督微调实现,教会模型识别意图和参数提取;MCP是标准化工具交互的协议框架;A2A则使AI智能体之间能够协作。文章还提供了系统学习LLM的方法…

大模型构建知识图谱的挑战与解决方案:判别式模型的优势

文章探讨了大语言模型在构建知识图谱时的根本性挑战,指出生成式模型因文本生成机制与结构化知识需求不匹配而存在幻觉、碎片化等问题。作者提出判别式模型更适合结构化提取,强调断言知识图谱作为可验证基础的重要性,并介绍通过层级关系、规则…

零基础转行AI大模型:我的自学经验分享(程序员必备,建议收藏)___转行人工智能大模型

文章讲述了农学背景的王东从销售工作转型学习AI大模型的故事。他通过自学Python、数据库、机器学习等技能,经历多次面试后成功获得AI岗位工作。作者分享了学习路径、面试经验和职场心得,强调了抓住机会和找到适合自己领域的重要性。最后提供了AI大模型学…

企业级大模型落地宝典:精准选模+高效开发+持续优化(建议收藏)

企业落地大模型应用需关注精准选模、开发平台搭建和合作伙伴选择三要素。应选择与业务高度匹配的模型,搭建覆盖全生命周期的开发平台,并与经验丰富的AI厂商合作。同时需做好资源投入、数据治理、算力准备和效果评估,通过低代码工具和自动化流…

2026/1/25 今天学的day12的lecode1047和150

2026/1/25 今天学的day12的lecode1047和150lecode 1047 class Solution { public: string removeDuplicates(string s) { string res; for(auto i:s){ if(!res.empty()&&i==res.back()){ res.pop_back(); }els…

python第二次作业

1. 已知列表xlist(range(9)),那么执行语句del x[:2]之后, x的值为(D)A.[1,3,5,7,9]B.[1,3,5,7]C.[0,1,3,5&…

NaViT:解决图像大小问题的革命性大模型架构

NaViT是一种创新的可变分辨率视觉Transformer架构,通过引入"Patch n’ Pack"技术,将不同图像的多个补丁打包到单个序列中,使模型能处理不同分辨率和长宽比的图像,无需调整大小或填充。核心创新包括掩码自注意力防止图像…

【2026最新】人工智能智能体协议详解,大模型开发者必学收藏指南

文章介绍了人工智能智能体协议的定义、种类与架构,重点解析了模型上下文协议(MCP)作为标准化连接层的作用。MCP使AI智能体能与外部工具和服务有效通信,采用客户端/服务器架构,支持多种传输方式。文章详细讲解了如何构建MCP服务器,…

程序员必看!阿里Qwen3-TTS开源:3秒克隆声音,低至97ms延迟,多模态语音合成全家桶

阿里Qwen3-TTS是开源语音合成模型,具备三大核心功能:3秒音色克隆、自然语言音色设计和预设音色。模型支持10种语言,首包延迟仅97ms,适合实时对话。提供多种部署方式,包括在线Demo、本地部署、vLLM和ComfyUI集成。有1.7…