Linux 硬件时间(RTC time),2024年最新请谈下Linux运维消息机制
date。
·
查询本地时间
date
在Windows系统中,日期和时间设置对话框或`time`命令默认显示的也是本地时间。
### 4. 时区(Time zone)
#### 4.1 时区简介
时区是为了方便统一时间而划分的地理区域。全球被划分为24个时区,每个时区大约代表15度的经度。各时区的时间以UTC(协调世界时)为基准,东边的时区比UTC时间晚,西边的时区比UTC时间早。
#### 4.2 如何设置时区
在Unix和类Unix系统中,可以使用`tzselect`命令选择时区,然后将选定的时区链接到`/etc/localtime`:
选择时区
tzselect
设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
在Windows系统中,可以通过日期和时间设置对话框更改时区。
#### 4.3 docker容器中的时区(与宿主机日期时间同步)
Docker容器的默认时区取决于使用的基础镜像。许多常见的基础镜像(例如Debian,Ubuntu等)的默认时区通常是UTC(协调世界时)。这意味着如果没有在创建或运行Docker容器时显式设置一个特定的时区,那么容器内部的时间将按照UTC来显示。
如果希望docker容器中的时区与宿主机保持一致,可以在容器docker run的时候增加以下挂载:
-v /etc/localtime:/etc/localtime:ro
-v /etc/timezone:/etc/timezone:ro\
* `/etc/timezone`: 这个文件包含了当前设置的时区信息。比如,如果系统设置为美国东部时区,这个文件的内容可能会是 `America/New_York`。
* `/etc/localtime`: 这个文件是当前设定的时区对应的数据文件的复制品或者软链接。这个文件用于提供本地化的日期和时间显示。
这两个文件在系统中扮演着不同的角色,而且都是影响系统时间表现的重要因素。如果希望让Docker容器的时间与宿主机完全一致,那么在运行容器时需要同时挂载这两个文件:
docker run -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro your_image
只挂载 `/etc/timezone` 或 `/etc/localtime` 可能会导致一些问题,比如在处理跨时区的日期和时间时可能出现错误。
默认情况下,Docker容器并不会自动挂载 `/etc/localtime` 文件。容器是通过宿主机的内核获取物理时间的。
Docker容器虽然在很多方面都与宿主机隔离,但它们共享同一个内核。这意味着,当容器需要获取当前的物理时间(例如,调用 `time()` 系统调用)时,它会直接从宿主机的内核获取这个信息。这就是为什么即使不挂载 `/etc/localtime`,容器中的程序仍然能够获取到正确的物理时间。
然而,时区信息并不只是物理时间,它还涉及到逻辑时间的处理,包括日历计算、夏令时调整等等。这些信息是存储在 `/etc/timezone` 和 `/etc/localtime` 这两个文件中的。如果希望容器中的程序能够正确地处理这些时区相关的问题,那么需要将这两个文件同时挂载到容器中,缺一不可。
### 5. 夏令时(Daylight Saving Time)(DST)
#### 5.1 夏令时简介
夏令时是为了利用日照时间而在夏季调整时间的做法。通常情况下,夏令时会在春末将时间提前一小时,然后在秋初再把时间延后一小时。这样可以使人们在夜晚有更多的日光,从而节省电力。
#### 5.2 夏令时地区
夏令时在全球范围内的采用情况并不统一,很多国家或地区都有自己特定的规定。
##### 采用夏令时的地区
1. **欧洲**:大部分欧洲国家在每年3月的最后一个星期日开始夏令时,到10月的最后一个星期日结束。这包括英国、法国、德国、西班牙等国。
2. **北美**:包括美国(除了亚利桑那州和夏威夷)、加拿大(除了萨斯喀彻温省和一些地方)和墨西哥的一些地区。北美的夏令时从每年3月的第二个星期日开始,到11月的第一个星期日结束。
3. **澳大利亚**:只有南澳大利亚州、新南威尔士州、塔斯马尼亚州和维多利亚州实行夏令时,从每年10月的第一个星期日开始,到次年4月的第一个星期日结束。
##### 不采用夏令时的地区:
1. **中国**:中国自1991年起就未再实行夏令时。
2. **日本**:日本自1952年以来就没有实行夏令时。
3. **印度**:印度没有实行夏令时。
4. **亚利桑那州和夏威夷**:这两个美国的地区不采用夏令时。
5. **大部分非洲和南美洲国家**:除了一些特定的国家或地区,大部分非洲和南美洲的国家都不实行夏令时。
#### 5.3 如何处理夏令时
大多数现代操作系统和编程语言的时间库都可以自动处理夏令时。例如,在Python中,`pytz`库提供了世界各地的时区数据,并可以自动处理夏令时:
from datetime import datetime
import pytz
获取当前的UTC时间
now = datetime.now(pytz.utc)
转换为纽约时间(自动处理夏令时)
ny_time = now.astimezone(pytz.timezone(‘America/New_York’))
print(ny_time)
同样,在Unix和类Unix系统中,只要正确设置了时区,系统就会自动处理夏令时。
### 6. ubuntu timedatectl命令示例:查看时间相关信息
在ubuntu里,可使用`timedatectl`查看以上相应概念:
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**





**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**

### 最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
### 资料预览
给大家整理的视频资料:

给大家整理的电子书资料:

**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**
**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**
**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中...(img-2C5C2DVZ-1712672721636)]
更多推荐




所有评论(0)