Linux-----12、时间日期

# 时间日期

# 时区设置

在Linux (opens new window)系统中,默认使用的是UTC时间。

即使在安装系统的时候,选择的时区是亚洲上海,Linux默认的BIOS时间(也称:硬件时间)也是UTC时间 (opens new window)。 在重启之后,系统时间会和硬件时间同步,如果两者不一致,会以硬件时间为标准进行时间的校准。所以,之前设置的时区和时间就失效了 北京时间比UTC时间早8小时,以2023年1月1日0000UTC为例,UTC时间是零点,北京时间为2023年1月1日早上8点整。

# 查看当前系统时间
date# 查看当前硬件时间
hwclock或clock#查看当前系统时区
date -R[root@jysp jysp]# date 
2023年 12月 15日 星期五 09:14:28 CST[root@jysp jysp]# hwclock
2023年12月15日 星期五 09时12分57秒  -0.179492 秒[jysp@jysp ~]$ date -R
Fri, 15 Dec 2023 09:12:23 +0800

# 图形化设置

CentOS7如何图形化设置时区?

这与图形化设置网络、设置主机名、设置新用户等,基本相同。过程简单,对于初学者比较友好。

# 1.进入设置

点击【应用程序】->【系统工具】->【设置】选项

https://img-blog.csdnimg.cn/img_convert/8595981e68e85f1bbe6b00c1992fac2f.png

# 2.找到时区

点击【详细信息】->【日期和时间】

img

# 3.操作认证

点击【解锁】并输入密码进行【认证】

Centos7不需要认证,而Centos8和ubuntu 修改时区时需要认证。按要求认证即可。

# 4.自动设置

开启【自动设置日期和时间】、【自动设置时区】选项

根据情况,可决定是否开启自动设置。

# tzselect

用tzselect设置时区采用人机交互的形式,十分方便。

命令中第一个字母t是时间time的简写; 命令中第二个字母z是区域zone的简写。

使用tzselect 设置时区,按照提示,一步步进行,没有难度。 按照提示一路选择: 5) asia —-> 9) china ——> 1) beijing 但成功设置后,会提示把时区变量作为全局变量添加到profile中

img

1.可以采用命令追加形式

echo “export TZ='Asia/Shanghai'”  >>/etc/profile

2.可以采用vim 打开文件,在最后一行添加内容

export  TZ='Asia/Shanghai'

保存,退出 完成对文件的修改后,并不能马上更改时区,仍然需要执行命令 source /etc/profile 当执行source命令时,系统会退出当前bash,并重新登录。 再重新查看时间与时区,已更新。

# timedatectl

timedatectl是一个命令行工具,它允许你查看或者修改系统的时间和日期。它在所有现代的基于 system 的 linux 系统中都可以使用。 timedatectl 打印当前时区信息 如果不带参数直接运行,会正常打印出时间信息。

timedatectl 查看可以设置的时区

timedatectl list-timezones

带上list-timezones参数运行下,看到如下的结果:

上面的结果展示不全, 往下翻找可以看到 Asia/Shanghai 这一行。

不想全部看完,可按q退出查看。

timedatectl 设置时区

timedatectl set-timezone Asia/Shanghai

# cp文件设置时区

cp文件设置时区

    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

这种方式也可以设置时间,但是还是建议使用timedatectl工具。 因为timedatectl工具屏蔽了各个linux的差异性。vim修改时区文件

# vim修改时区文件

我们如何确定自己的时区是正确的? 时区文件默认的是:/etc/localtime 下面命令会把我们系统的时间还有时区显示出来

img

原文链接:https://blog.csdn.net/qq_36142959/article/details/132719285

# 时间命令

# 1、date命令(重点)

date :打印或者设置当前系统日期和时间

date --help 自己先求帮助

用法:date [选项]... [+格式]或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.Mandatory arguments to long options are mandatory for short options too.-d, --date=STRING         display time described by STRING, not 'now'-f, --file=DATEFILE       like --date once for each line of DATEFILE-I[TIMESPEC], --iso-8601[=TIMESPEC]  output date/time in ISO 8601 format.TIMESPEC='date' for date only (the default),'hours', 'minutes', 'seconds', or 'ns' for dateand time to the indicated precision.-r, --reference=文件          显示文件指定文件的最后修改时间-R, --rfc-2822                以RFC 2822格式输出日期和时间例如:2006年8月7日,星期一 12:34:56 -0600--rfc-3339=TIMESPEC   output date and time in RFC 3339 format.TIMESPEC='date', 'seconds', or 'ns' fordate and time to the indicated precision.Date and time components are separated bya single space: 2006-08-07 12:34:56-06:00-s, --set=STRING          set time described by STRING-u, --utc, --universal    print or set Coordinated Universal Time (UTC)--help            显示此帮助信息并退出--version         显示版本信息并退出给定的格式FORMAT 控制着输出,解释序列如下:%%    一个文字的 %%a    当前locale 的星期名缩写(例如: 日,代表星期日)%A    当前locale 的星期名全称 (如:星期日)%b    当前locale 的月名缩写 (如:一,代表一月)%B    当前locale 的月名全称 (如:一月)%c    当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)%C    世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)%d    按月计的日期(例如:01)%D    按月计的日期;等于%m/%d/%y%e    按月计的日期,添加空格,等于%_d%F    完整日期格式,等价于 %Y-%m-%d%g    ISO-8601 格式年份的最后两位 (参见%G)%G    ISO-8601 格式年份 (参见%V),一般只和 %V 结合使用%h    等于%b%H    小时(00-23)%I    小时(00-12)%j    按年计的日期(001-366)%k   hour, space padded ( 0..23); same as %_H%l   hour, space padded ( 1..12); same as %_I%m   month (01..12)%M   minute (00..59)%n    换行%N    纳秒(000000000-999999999)%p    当前locale 下的"上午"或者"下午",未知时输出为空%P    与%p 类似,但是输出小写字母%r    当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)%R    24 小时时间的时和分,等价于 %H:%M%s    自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数%S    秒(00-60)%t    输出制表符 Tab%T    时间,等于%H:%M:%S%u    星期,1 代表星期一%U    一年中的第几周,以周日为每星期第一天(00-53)%V    ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)%w    一星期中的第几日(0-6),0 代表周一%W    一年中的第几周,以周一为每星期第一天(00-53)%x    当前locale 下的日期描述 (如:12/31/99)%X    当前locale 下的时间描述 (如:23:13:48)%y    年份最后两位数位 (00-99)%Y    年份%z +hhmm              数字时区(例如,-0400)%:z +hh:mm            数字时区(例如,-04:00)%::z +hh:mm:ss        数字时区(例如,-04:00:00)%:::z                 数字时区带有必要的精度 (例如,-04,+05:30)%Z                    按字母表排序的时区缩写 (例如,EDT)默认情况下,日期的数字区域以0 填充。
The following optional flags may follow '%':-  (hyphen) do not pad the field_  (underscore) pad with spaces0  (zero) pad with zeros^  use upper case if possible#  use opposite case if possible在任何标记之后还允许一个可选的域宽度指定,它是一个十进制数字。
作为一个可选的修饰声明,它可以是E,在可能的情况下使用本地环境关联的
表示方式;或者是O,在可能的情况下使用本地环境关联的数字符号。Examples:
Convert seconds since the epoch (1970-01-01 UTC) to a date$ date --date='@2147483647'Show the time on the west coast of the US (use tzselect(1) to find TZ)$ TZ='America/Los_Angeles' dateShow the local time for 9AM next Friday on the west coast of the US$ date --date='TZ="America/Los_Angeles" 09:00 next Fri'GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告date 的翻译错误
要获取完整文档,请运行:info coreutils 'date invocation'
# ① 打印日期或时间
常用格式:获取系统当前时间yyyy-mm-dddate +%Fdate +%Y-%m-%dyyyy-mm-dd HH:mm:ssdate +'%F %T'date +'%Y-%m-%d %H:%M:%S'获取非当前时间 days,months,yearsyyyy-mm-dddate -d '+3days' +'%F %T'date --date='3days' +'%F %T'date -d '-3days' +'%F %T'date -d '3days ago' +'%F %T'date --date='-3days' +'%F %T'打印系统当前日期或时间
[root@heima ~]# date
[root@heima ~]# date +%D
[root@heima ~]# date +%F
[root@heima ~]# date +%Y-%m-%d
[root@heima ~]# date +%T
[root@heima ~]# date +%X
[root@heima ~]# date +'%F %X'
[root@heima ~]# date +%c
打印系统非当前日期或时间
[root@heima ~]# date -d '+3days' +%F
[root@heima ~]# date -d '-3days' +%F
[root@heima ~]# date -d '3days' +%F
[root@heima ~]# date -d '3days ago' +%F
[root@heima ~]# date --date='30days' +%F[jysp@jysp ~]$ date +'%Y %m %d'
2023 11 01
[jysp@jysp ~]$ date +%T
10:32:06
[jysp@jysp ~]$ date +%X
10时32分14秒
[jysp@jysp ~]$ date +%F %X
date: 额外的操作数 "%X"
Try 'date --help' for more information.
[jysp@jysp ~]$ date +'%F %X'
2023-11-01 10时32分30秒
[jysp@jysp ~]$ date +%c
2023年11月01日 星期三 10时33分10秒
[jysp@jysp ~]$ date -d
date:选项需要一个参数 -- d
Try 'date --help' for more information.
[jysp@jysp ~]$ date -d '+3days' +%F
2023-11-04
[jysp@jysp ~]$ date -d '+3days' +%c
2023年11月04日 星期六 10时34分06秒
[jysp@jysp ~]$ date -d '-3days' +%F
2023-10-29
[jysp@jysp ~]$ date -d '3days ago' +%F
2023-10-29
[jysp@jysp ~]$ date -d '3days' +%F
2023-11-04
[jysp@jysp ~]$ date --date='30days' +%F
2023-12-01
[jysp@jysp ~]$ 
# ② 设置系统日期或时间
选项:-s 设置当前系统时间,只有root权限才能设置,其他只能查看。
date -s 20200523 设置成20100523,这样会把具体时间设置成空00:00:00
date -s "01:01:01 2020-05-2" 这样可以设置全部时间
date -s "01:01:01 20200523" 这样可以设置全部时间
date -s "2020-05-23 01:01:01" 这样可以设置全部时间
date -s "20200523 01:01:01" 这样可以设置全部时间注意:
红帽8,设置为过去的时间,过段时间会被重置为当前时间

# 2、hwclock命令

# ③ 系统时间同步硬件时间

hwclock :查看并且设置硬件时间

选项:
# 设置系统时间:从硬件时间同步到系统时间
-s, --hctosys set the system time from the RTC
# 设置硬件时间:从系统时间同步到硬件时间
-w, --systohc set the RTC from the system time
# 查看硬件时间
-l, --localtime the RTC timescale is Local举例说明:
[root@heima ~]# hwclock --hctosys
[root@heima ~]# hwclock
2019-06-23 18:44:10.377920+08:00[root@heima ~]# date
2019年 06月 23日 星期日 18:44:21 CST
[root@heima ~]# date -s "20221010 12:12:12"
2022年 10月 10日 星期一 12:12:12 CST
[root@heima ~]# date
2022年 10月 10日 星期一 12:12:14 CST
[root@heima ~]# hwclock
2019-06-23 18:45:01.368135+08:00
[root@heima ~]# hwclock --systohc
[root@heima ~]# hwclock
2022-10-10 12:12:43.179274+08:00

# 3、timedatectl命令

timedatectl

查看当前时间、时区、NTP服务状态 设置系统时间、硬件时间、时区

ntp服务

# 从7开始就有
timedatectl -h 设置和查看系统的时间和日期(设置时区以及开启或关闭ntp服务)# 查看当前时间
[jysp@jysp ~]$ timedatectl statusLocal time: 三 2023-11-01 10:47:08 CSTUniversal time: 三 2023-11-01 02:47:08 UTCRTC time: 三 2023-11-01 02:47:42Time zone: Asia/Shanghai (CST, +0800)NTP enabled: yes
NTP synchronized: noRTC in local TZ: noDST active: n/a# 关闭NTP同步
timedatectl set-ntp no# 设置时间:系统时间、硬件时间
timedatectl set-time 2020-10-10
timedatectl set-time 11:11:11
timedatectl list-timezones
timedatectl set-timezone xxx# 同步当前时间
# 6版本中
ntpdate# 8版本中
timedatectl set-ntp yes
timedatectl status
chronyc makestep

# 4、cal命令(了解)

cal :查看日历

用法:cal [选项] [[[日] 月] 年]选项:-1, --one        只显示当前月份(默认)-3, --three      显示上个月、当月和下个月-s, --sunday     周日作为一周第一天-m, --monday     周一用为一周第一天-j, --julian     输出儒略日-y, --year       输出整年-V, --version    显示版本信息并退出-h, --help       显示此帮助并退出
cal 或者 cal -1 		表示直接输出当前月份的日历
cal -3 				 表示输出上一个月+本月+下个月的日历
cal -y 年份 			表示输出某一个年份的日历

# 5、tzselector(了解)

用tzselect设置时区采用人机交互的形式,十分方便。

命令中第一个字母t是时间time的简写; 命令中第二个字母z是区域zone的简写。

使用tzselect 设置时区,按照提示,一步步进行,没有难度。 按照提示一路选择: 5) asia —-> 9) china ——> 1) beijing

# 综合应用

# ④ 应用案例

有时候我们需要用到当前的系统时间,如何调用?比如以当前系统日期命名创建目录或文件

2020-10-10.log.tar.gz
2020-10-11.log.tar.gz
$():括号里面的命令优先执行 	date +%F 		2019-06-23
`` :引号里面的命令优先执行,不允许嵌套创建目录和文件,以当前系统日期命名
[root@heima ~]# mkdir $(date +%F)
[root@heima ~]# touch $(date -d '+3days' +%Y%m%d).log

#

# 时间同步NTP

# 1、了解时间同步的重要性

由于IT系统中,准确的计时非常重要,有很多种原因需要准确计时,如

在网络传输中,数据包和日志需要准确的时间戳

各种应用程序中,如订单信息,交易信息等都需要准确的时间戳

在Linux系统中, Network Time Protocol (NTP),NTP协议由在用户空间中运行的守护程序实现,即ntp和chrony。

红帽6以前使用ntp,红帽7ntp和chrony,红帽8 chrony

# 2、了解时间同步服务器

image-20231212192234556

查看可以提供时间同步的服务器:

http://www.ntp.org.cn/pool

image-20231215151614961

# 3、如何同步自己系统时间

需要联网

(1)方式一:自动同步

# 手动设置时间
date -s "2020-10-10 10:10:10"# 查看chrony安装包
yum list|grep chrony# 查看软件包,配置文件位置
rpm -qc chrony

image-20231215152048615

# 重启服务
systemctl restart chronyd.service
systemctl status chronyd.service# 修改时间,测试自动同步
date -s "2020-10-10 10:10:10"

(2)方式二:手动临时同步

临时指定ntp服务器同步

systemctl status chronyd.service
systemctl stop chronyd.servicechronyd -q "server cn.ntp.org.cn iburst"

# 4、搭建时间同步服务

# ㈠ 了解RHEL7和RHEL8区别
  • 在RHEL7中,用户可以在ntpchrony之间进行选择,以确保准确的计时。

  • 在RHEL8中,不再支持ntp,使用chronyd守护进程来实现NTP,默认已启用,从chrony软件包获得。

  • chrony和ntp之间的差异

    • ntpd服务器在控制客户端访问方式上默认响应来自任何地址的请求,相对不安全chronyd默认不允许访问,要想提供时间同步服务端需要在allow中指定

    • ntpd 和 chronyd 在系统时钟校正方面的默认行为也不同。

    • 客户端同步方式有差异

  • 还有很多不同可以参考官方网站:https://chrony.tuxfamily.org/comparison.html

总结:

chrony在各种条件下表现良好,包括间歇性网络连接,高度拥挤的网络,温度变化(普通计算机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。

# ㈡ RHEL8配置时间同步服务
  1. 关闭防火墙和selinux(实验)

  2. 配置软件仓库

  3. 软件三部曲

    • 安装软件

    • 确认软件是否成功安装

    • 查看软件的文件列表(配置文件、程序本身、man手册)

  4. 了解配置文件(man 5 xxx.conf)

  5. 根据需求通过修改配置文件来完成服务搭建

  6. 启动服务,开机自启动

  7. 测试验证

  • 时间同步服务器端

    # 防火墙
    systemctl status firewalld.service
    # selinux
    getenforce
    # 软件仓库
    dnf repolist
    # 查看软件包
    rpm -q chrony
    # 查看配置文件
    rpm -ql chrony# vim /etc/chrony.conf
    #自己本身向谁来同步时间
    pool cn.ntp.org.cn iburst
    #允许哪些客户端来同步,192.168.159网段的ip/子网掩码24位
    allow 192.168.159.0/24重启服务
    systemctl restart chronyd.service查看服务状态
    systemctl status chronyd.service查看udp端口状态
    netstat -nlup|grep chronyd
  • 客户端

    修改配置文件

    image-20231215153721931

    重启服务
    systemctl restart chronyd.service查看当前客户端使用的源
    chronyc sources
    chronyc sourcestats[root@client ~]# chronyc sources
    210 Number of sources = 1
    MS Name/IP address Stratum Poll Reach LastRx Last sample
    ===============================================================================
    ^? 192.168.159.100 3 6 37 5 +10766h[+10766h] +/- 3872us手动同步时间,官方不建议使用
    [root@client ~]# chronyc makestep
    200 OK

*代办当前在使用的源

image-20231215154114740

本文转自 https://docs.xiaoshaozi.site

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

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

相关文章

逻辑回归代价函数

逻辑回归的代价函数通常使用交叉熵损失来定义。这种损失函数非常适合于二元分类问题。 本篇来推导一下逻辑回归的代价函数。 首先&#xff0c;我们在之前了解了逻辑回归的定义&#xff1a;逻辑回归模型是一种用于二元分类的模型&#xff0c;其预测值是一个介于0和1之间的概率…

这种形状的土堆,用DasViewer土方计算时该选择哪种模式?

答&#xff1a;推荐拟合平面&#xff1b;当堆料的整个边界可见并且基面是具有相同高度的坚硬表面、斜坡或平坦时&#xff0c;推荐该选项。 DasViewer是由大势智慧自主研发的免费的实景三维模型浏览器,采用多细节层次模型逐步自适应加载技术,让用户在极低的电脑配置下,也能流畅…

nginx 1.24.0 安装nginx最新稳定版

1.官网&#xff1a; nginx: download 2. 选择稳定版&#xff1a; 3. 可以下载&#xff0c;然后上传服务器&#xff0c;也可以wget获取&#xff1a; cd /home wget https://nginx.p2hp.com/download/nginx-1.24.0.tar.gz 4. 放入/home 下。并解压缩&#xff0c;重命名nginx;…

Tomcat性能优化

Tomcat是一款常用的Java Web应用服务器&#xff0c;对其进行性能优化可以提高Web应用的响应速度和吞吐量。Tomcat性能取决于内存的大小。 增加JVM内存&#xff1a;在Tomcat的bin目录下的catalina.sh文件中修改JAVA_OPTS参数&#xff0c;将堆内存大小-Xmx和-Xms调整为适当的值。…

Leetcode 剑指 Offer II 057. 存在重复元素 III

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给你一个整数数组 nums 和两个整数 k 和 t 。请你判断是否存在 两…

Centos开机进入grub命令行模式进入不了操作系统

环境&#xff1a;没有linux命令&#xff0c;没有initrd命令&#xff0c;没有init6命令 由于删除了/boot/efi/EFI/centos/grub.cfg &#xff0c;重启服务器后&#xff0c;无法进入原来正常的系统&#xff0c;进入了grub命令行界面 备注&#xff1a;对于centos7/8/openEuler: 如果…

我的NPI项目之Android 安全系列 -- EMVCo

最近一直在和支付有关的内容纠缠&#xff0c;原来我负责的产品后面还要过EMVCo的认证。于是&#xff0c;就网上到处找找啥事EMVCo&#xff0c;啥是EMVCo&#xff0c;啥是EMVCo。 于是找到了一个神奇的个人网站&#xff1a;Ganeshji Marwaha 虽然时间有点久远&#xff0c;但是用…

聚观早报 |红魔9 Pro氘锋透明银翼版开售;荣耀90 GT将发布

【聚观365】12月16日消息 红魔9 Pro氘锋透明银翼版开售 荣耀90 GT将发布 德国成功化解预算僵局 第二届起点读书“网文填坑节”收官 阿维塔科技拟 2025 年赴港上市 红魔9 Pro氘锋透明银翼版开售 现在有最新消息&#xff0c;近日红魔9 Pro氘锋透明银翼版本开启全款预售&…

风速预测(五)基于Pytorch的EMD-CNN-LSTM模型

目录 前言 1 风速数据EMD分解与可视化 1.1 导入数据 1.2 EMD分解 2 数据集制作与预处理 2.1 先划分数据集&#xff0c;按照8&#xff1a;2划分训练集和测试集 2.2 设置滑动窗口大小为96&#xff0c;制作数据集 3 基于Pytorch的EMD-CNN-LSTM模型预测 3.1 数据加载&…

Android 12.0 Launcher3定制化之动态时钟图标功能实现

1.概述 在12.0的系统产品rom定制化开发中,在Launcher3中的定制化的一些功能中,对于一些产品要求需要实现动态时钟图标功能,这就需要先绘制时分秒时针表盘,然后 每秒刷新一次时钟图标,时钟需要做到实时更新,做到动态时钟的效果,接下来就来分析这个功能的实现 如图: 2.动…

skynet 中 mongo 模块运作的底层原理解析

文章目录 前言总览全流程图涉及模块关系连接数据库函数调用流程图数据库操作函数调用流程图涉及到的代码文件 建立连接SCRAMSASL 操作数据库结语参考链接 前言 这篇文章总结 skynet 中 mongo 的接入流程&#xff0c;代码解析&#xff0c;读完它相信你对 skynet 中的 mongo 调用…

CSS margin-trim

margin-trim 主角登场主角的局限性兼容性 margin-trim &#x1f9ea;这是一个实验性的属性, 目前仅有 Safari 支持 看这个属性的名字就知道, 外边距修剪. 平常都会遇到一些排版上的问题, 比如垂直排列的元素之间增加下外边距 <div><li>123</li><li>…