sw服务器的系统时间,linux的系统时间
设置系统日期和时间
将 BIOS 时钟设置为正确的 UTC 时间
配置时区
配置 Network Time Protocol(NTP)服务,包括纠正时钟漂移
Linux 上的系统时间非常重要。在前面已经看到,cron 和 anacron 设施根据时间执行作业,所以它们需要精确的时间。前一节中讨论的大多数备份和恢复工具,以及 make 等开发工具,也依赖于可靠的时间。1980 年以后生产的大多数计算机都包含某种时钟机制,1984 年以后生产的大多数计算机通常有持久的时钟机制,即使计算机关闭了,仍然可以维护时间。
如果以图形化方式安装 Linux 系统,那么可能根据自己的需要设置了时钟和时区。还可以使用 Network Time Protocol(NTP)设置时钟,可以使用 Coordinated Universal Time(UTC)维护系统时钟。如果用 Fedora、Red Hat 或相似系统上的图形工具设置过时钟,您可能见过图 3 这样的对话框。
令人吃惊的是,实际上无法用这个对话框设置时钟。在本节中,学习本地时钟和 NTP 之间的差异以及如何设置系统时间。
无论您生活在 New York、Budapest、Nakhodka、Ulan Bator、Bangkok 还是 Canberra,大多数 Linux 时间的计算都与 Coordinated Universal Time(UTC)相关。如果使用专有的 Linux 系统,往往会将硬件时钟设置为 UTC;但是,如果还要引导另一个操作系统(比如 Windows),那么可能需要将硬件时钟设置为本地时间。这一般不是问题,因为 Linux 会负责处理,但是 Linux 内部有两种跟踪时区的方法;如果它们不一致,在 FAT 文件系统上可能会产生一些奇怪的时间戳和其他现象。清单 55 演示如何使用 date 命令显示当前日期和时间。显示的总是本地时间,即使硬件时钟设置为 UTC 时间。
[root@lyrebird ~]# date;date -u
Mon Jul 9 22:40:01 EDT 2007
date 命令支持许多输出格式,在 清单 28 中已经看到过其中一些格式。如果想进一步了解各种日期格式,请参考 date 的手册页。
如果需要设置日期,那么可以提供日期和时间参数。出于历史原因,所需的格式对于美国人来说有点儿古怪,对于其他地区的人甚至更奇怪。必须至少按照 MMDDhhmm 格式指定月、日、小时和分钟,还可以加上两位或四位的年份(CCYY 或 YY)以及可选的点号(.),后面加上两位的秒数。清单 56 设置了系统日期。
[root@lyrebird ~]# date; date 0709221407;date
Mon Jul 9 23:12:37 EDT 2007
Mon Jul 9 22:14:00 EDT 2007
Mon Jul 9 22:14:00 EDT 2007
Linux 系统和大多数其他现代操作系统实际上有两个时钟。第一个时钟是硬件时钟,有时称为 Real Time Clock(RTC)或 BIOS 时钟,这个时钟常常与石英晶体的振荡频率相关,它的误差只有每天几秒。它会受到环境温度等因素的影响。第二个时钟是内部软件时钟,这由计数系统中断控制。它会受到系统高负载和中断延迟的影响。系统通常会在启动时读取硬件时钟,在此之后使用软件时钟。date 命令设置软件时钟,而不是硬件时钟。
如果使用 Network Time Protocol(NTP),那么可以在安装系统时设置硬件时钟,然后就不用再管它了。如果不使用 NTP,本节将讲解如何显示和设置硬件时钟时间。
可以使用 hwclock 命令显示硬件时钟的当前值。清单 57 同时显示系统时钟和硬件时钟的当前值。
[root@lyrebird ~]# date;hwclock
Mon Jul 9 22:16:11 EDT 2007
Mon 09 Jul 2007 11:14:49 PM EDT -0.071616 seconds
注意,这两个值有差异。可以使用 hwclock 的 -w 或 --systohc 选项让硬件时钟与系统时钟同步。可以使用 -s 或 --hctosys 选项让系统时钟与硬件时钟同步,见清单 58。
[root@lyrebird ~]# date;hwclock;hwclock -s;date
Mon Jul 9 22:20:23 EDT 2007
Mon 09 Jul 2007 11:19:01 PM EDT -0.414881 seconds
Mon Jul 9 23:19:02 EDT 2007
可以指定 --utc 或 --localtime 选项,让系统时钟与 UTC 或本地时间同步。如果没有指定值,就从 /etc/adjtime 的第三行获得值。
Linux 内核有一种模式,它每 11 分钟将系统时间复制到硬件时钟。默认情况下这个模式是关闭的,但是 NTP 会打开它。如果以老式方式设置时间,比如 hwclock --hctosys,就会关闭这个模式,所以如果使用 NTP,最好让 NTP 自己负责,不要手工设置时间。在 adjtimex 的手册页中介绍了如何检查时钟是否每 11 分钟更新。可能需要安装 adjtimex 包,因为默认情况下可能没有安装这个包。
hwclock 命令会记录对硬件时钟的修改,以便补偿时钟频率的误差。必需的数据点保存在 /etc/adjtime 中,这是一个 ASCII 文件。如果不使用 Network Time Protocol,那么可以使用 adjtimex 命令补偿时钟漂移。如果使用 NTP,NTP 大约每 11 分钟调整一次硬件时钟。除了显示硬件时钟是本地时间还是 UTC 时间之外,/etc/adjtime 中的第一个值还显示每天的硬件时钟漂移量(以秒为单位)。清单 59 给出两个示例。
[root@lyrebird ~]# cat /etc/adjtime
0.000990 1184019960 0.000000
1184019960
LOCAL
root@pinguino:~# cat /etc/adjtime
-0.003247 1182889954 0.000000
1182889954
LOCAL
注意,这两个系统都按照本地时间记录硬件时钟,但是时钟漂移不一样 — 在 lyrebird 上是 0.000990,在 pinguino 上是 -0.003247。
时区表示本地时间与 UTC 相差多少。可以配置关于时区的信息,这些信息保存在 /usr/share/zoneinfo 中。/tec/localtime 以前常常是指向这个目录树中一个时区文件的链接,例如 /usr/share/zoneinfo/Eire 或 /usr/share/zoneinfo/Australia/Hobart。在现代系统上,它往往是适当时区数据文件的副本,因为在引导过程的早期需要本地时区信息,但是这时候 /usr/share 文件系统可能还没有挂装。
同样,另一个文件 /etc/timezone 以前常常是 /etc/default/init 的链接,它用来设置时区环境变量 TZ 和几个与地区相关的环境变量。您的系统上可能有这个文件,也可能没有。如果有这个文件,它可能只包含当前时区的名称。还可能在 /etc/sysconfig/clock 中找到时区信息。清单 60 显示 Ubuntu 7.04 和 Fedora 7 系统上的这些文件。
root@pinguino:~# cat /etc/timezone
America/New_York
[root@lyrebird ~]# cat /etc/sysconfig/clock
# The ZONE parameter is only evaluated by system-config-date.
# The timezone of the system is defined by the contents of /etc/localtime.
ZONE="America/New York"
UTC=false
ARC=false
Debian 和 Ubuntu 等系统用 tzconfig 命令设置时区。Fedora 等其他系统使用 system-config-date 设置时区并指出时钟是否使用 UTC。清单 61 使用 tzconfig 命令显示当前时区。
root@pinguino:~# tzconfig
Your current time zone is set to America/New_York
Do you want to change that? [n]:
Your time zone will not be changed
Network Time Protocol(NTP)是一种通过网络对计算机时钟进行同步的协议。通常是与 UTC 同步。
NTP 3 是一个互联网标准草案(RFC 1305)。当前正在开发的版本(NTP 4)是一个重要的修订版,当前还没有完成。RFC 4330 描述了 Simple NTP(SNTP)4。
时间同步是通过向时间服务器(time server) 发送消息来完成的。对于返回的时间,要用网络往返延迟时间的一半进行调整。因此,时间的精度依赖于网络延迟,以及两个方向上的延迟是否大致相同。到时间服务器的路径越短,时间的精度就可能越高。更详细的信息参见 参考资料。
互联网上的计算机非常多,所以时间服务器组织成一个层(stratum)。很少的几台 1 级服务器通过原子钟这样的时间源维护非常精确的时间。数量较多的 2 级服务器从 1 级服务器获得时间,并向数量更多的 3 级服务器提供时间,以此类推。为了减轻时间服务器的负载,有许多志愿者通过 pool.ntp.org 提供时间服务(参见 参考资料 中的链接)。循环式 DNS 服务器将 NTP 服务器请求分布在可用服务器池中,从而实现 NTP 负载平衡。
如果使用图形界面,那么可以使用与图 4 相似的对话框设置 NTP 时间服务器。这个系统使用 NTP 自动更新时间,所以图 3 中的对话框不允许修改日期和时间。
NTP 配置信息保存在 /etc/ntp.conf 中,所以也可以编辑这个文件,然后保存文件并重新启动 ntpd 守护进程。清单 62 给出一个 /etc/ntp.conf 文件示例,它使用图 4 中的时间服务器。
[root@lyrebird ~]# cat /etc/ntp.conf
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool ().
#broadcast 192.168.1.255 key 42 # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 key 42 # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 key 42 # manycast client
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
#server 127.127.1.0 # local clock
#fudge 127.127.1.0 stratum 10
# Drift file. Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
driftfile /var/lib/ntp/drift
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
server 0.us.pool.ntp.org
restrict 0.us.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
server 1.us.pool.ntp.org
restrict 1.us.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
server 2.us.pool.ntp.org
restrict 2.us.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
如果要使用 pool.ntp.org 时间服务器,世界各地都有这些服务器。通过限制使用的服务器,常常可以获得更准确的时间;例如在这个示例中,使用 us.pool.ntp.org,因此只选择美国的服务器。关于 ntp.pool.org 项目的更多信息参阅 参考资料。
可以使用 ntpdate 命令按照 NTP 时间服务器设置系统时间,见清单 63。
[root@lyrebird ~]# ntpdate 0.us.pool.ntp.org
10 Jul 10:27:39 ntpdate[15308]: adjust time server 66.199.242.154 offset -0.007271 sec
因为服务器采用循环模式,所以下一次运行这个命令时可能会看到另一个服务器。清单 64 显示在运行上面的 ntpdate 命令之后,对 0.us.ntp.pool.org 的前几个 DNS 响应。
[root@lyrebird ~]# dig 0.pool.ntp.org +noall +answer | head -n 5
0.pool.ntp.org. 1062 IN A 217.116.227.3
0.pool.ntp.org. 1062 IN A 24.215.0.24
0.pool.ntp.org. 1062 IN A 62.66.254.154
0.pool.ntp.org. 1062 IN A 76.168.30.201
0.pool.ntp.org. 1062 IN A 81.169.139.140
ntpdate 命令现在已经废弃了,因为使用 ntpq 命令和 -q 选项可以实现同样的功能,见清单 65。
[root@lyrebird ~]# ntpd -q
ntpd: time slew -0.014406s
注意,ntpd 命令使用来自 /etc/ntp.conf 或命令行上提供的配置文件的时间服务器信息。关于 ntpd 的更多信息参见手册页。还要注意,如果 ntpd 守护进程正在运行,那么 ntpd -q 会悄悄退出,并在 /var/log/messages 中记录一个失败消息。
另一个相关命令是 ntpq 命令,可以用它查询 NTP 守护进程。更多细节参见手册页。
sw服务器的系统时间,linux的系统时间相关推荐
- linux系统无法设置时间,linux设置系统时间
设置系统时间 - date命令:显示系统的时间,可以在直接输入"date"命令来查看系统的时间 - date+%y/%m/%d - ...
- linux随身系统下载,[转载] 随身带着走的作业系统 ~安装Linux作业系统于随身碟~...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 随身带着走的作业系统 ~安装Linux作业系统于随身碟~ 想随时随地都有一套自己的作业系统可使用吗? Linux作业系统有一个超棒的优点就是可携性,安装到 ...
- linux 系统时间 硬件时间,linux 设置系统时间和硬件时间
linux 的系统时间有时跟硬件时间是不同步的 Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟.系统时钟是指当前Linux Kernel ...
- linux 多核 系统时钟,Linux中的时间
1. Linux中time相关概念 1.1 real time 指的是实际流逝的时间,又称为Wall Clock Time(墙上时间). 比如,time命令统计出的real time指的是该进程从开始 ...
- linux已开机时间,Linux查看系统开机时间
1: who 命令查看 who -b 查看最后一次系统启动的时间. who -r 查看当前系统运行时间 [root@DB-Server ~]# who -b system boot May 11 09 ...
- qt linux 修改系统时间,linux改变系统时间
linux修改系统时间 linux 2009-03-04 15:23:18 阅读1710 评论0 字号:大中小 订阅 Linux下的时间分为两种,系统时间与硬件时间.我们一般看到的时间就是系统时间,比 ...
- windows7 和linux双系统,win7与linux双系统_win7 linux双系统
2016-05-05 18:50:12 把两个系统放在不同磁盘.只要电脑上有其中一个系统,然后就可以安装另一个系统.制作个U盘启动盘安装 步骤: 1.将制作好的大番薯U盘插入电脑USB接口中,启动电脑 ...
- linux下查看系统硬件,Linux 查看系统硬件信息 Linux 查看系统硬件信息(实例详解)...
linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并作了分类,实例解说.html cpu lscpu命令,查看的是cpu的统计信息.linux blue@ ...
- linux正在等待声音系统响应,linux声音系统较好的解决方案alsa+esd
基本思路:alsa是主流且能兼容oss,故用alsa驱动统一低层.esound是gnome默认的声音服务,很多程序都基于它,故用esd统一高层.能够方便的实现混音,就是多个音频播放能够协调工作:他的反 ...
最新文章
- 一次性搞懂Spring Boot 注解原理与自动装配原理,图文并茂,万字长文!
- Singleton Pattern (单例模式)
- FlowDroid工具的构建与运行
- boost::safe_numerics模块实现隐式转换更改数据值的测试程序
- day10_控制文件
- 红队技巧:绕过ESET_NOD32抓取密码(ESET_NOD32是一款杀毒软件)
- chrome下载地址
- java学习中,异常和错误的简介、捕获异常、抛出异常、自定义异常、finally关键字(java 学习中的小记录)
- Activity过渡动画
- apex英雄机器人探路者怎么玩_LOL有哪些英雄,是你怎么玩都玩不会的?
- jQuery 2.0.3 源码分析Sizzle引擎 - 编译函数(大篇幅)
- 苹果cms V10模板/MXone Pro自适应影视电影网站模板
- 大数据公司挖掘数据价值的49个典型案例(值得收藏)
- 华为荣耀手机录制视频 华为手机如何录制视频
- win7虚拟机iOS坑爹法语键盘冲突解决方法
- 而立之年,第一篇博客,
- oracle 8002,ORACLE 8.1.7 数据库ORA-600 4194故障恢复
- 虚拟机装vpn,主机通过虚拟机的vpn代理实现vpn共享
- 苹果浏览器(Safari浏览器)打开网页“不安全”警告的解决方案
- oracle预收核销,Oracle EBS AP取消核销
热门文章
- rpm及deb包管理
- 看了Python在金融行业中的应用,大数据分析实在太重要了
- QT窗口图标和生成exe应用程序图标设置
- 万象2004不能用的解决方法
- error obtaining VCS status: exit status 128 Use -buildvcs=false to disable VCS stamping. make: ***
- 系统重装用户名与计算机名一致,笔记本重装系统后计算机名会自动改变吗?
- 新浪博客个人域名升级奖励
- 在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。选手的最后得分为:去掉最高分、最低分后的4个评委的平均分
- 假日出行 什么样的移动电源才靠谱
- ubuntu16.04 安装wine5和Notepad++ 绕坑版