⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0440ntp.htm

📁 鸟哥的linux私房菜
💻 HTM
📖 第 1 页 / 共 5 页
字号:
		为例,在 /etc/sysconfig/clock 这个档案当中应该是『ZONE="Asia/Taipei"』这就表示我们的时区档案为 
		/usr/share/zoneinfo/Asia/Taipei 这个档案棉!请对应著修改成您所想要的时区吧!<br /><br />

<table border=1 width=90% cellspacing=0 cellpadding=5><tr><td>
例题∶<br />假设你的主机本来在台湾,后来被搬到美国的洛杉矶 (Los_Angeles) 去了。
请问你如何更改主机的时区参考档案?<br />
答∶<ul>
	时区参考档在是 /etc/localtime ,不过这个档案在不同的 Linux distribution 的处理方式不一样。
	以 Red Hat 系统为例,他是以复制的方式来处理这个档案。而 SuSE 则是以 hard link 来处理的。
	所以,请记得不要随意的单纯用『复制』的方式来处理,最好先移除后复制。
	所以你可以这样做∶<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>rm /etc/localtime</span>
[root@linux ~]# <span class=term_command>cp -a /usr/share/zoneinfo/America/Los_Angeles \</span>
> <span class=term_command>/etc/localtime</span>
[root@linux ~]# <span class=term_command>vi /etc/sysconfig/clock</span>
ZONE="<span class=term_write>America/Los_Angeles</span>"
UTC=false
ARC=false
</pre></td></tr></table>

	这样就 OK 的啦! ^_^
</ul>
</td></tr></table><br />

		好了,时区修正完毕了,那么时间呢?如前所述,目前 Linux 系统上面有两个时间喔,一个是 Linux 系统,另一个则是 
		BIOS 时间!我们可以使用 date 这个指令来手动修正目前主机的时间,不过, date 这个指令仅修正 Linux 时间而已,我们还需要以 
		hwclock 这个指令来将 BIOS 时间也更新才行!<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>date MMDDhhmmYYYY</span>
<span class=term_say>参数∶
MM∶月份
DD∶日期
hh∶小时
mm∶分钟
YYYY∶西元年</span>

<span class=term_hd>1. 修改时间成为 1 小时后的时间该如何是好?</span>
[root@linux ~]# <span class=term_command>date</span>
Thu Dec  7 15:36:45 CST 2006

[root@linux ~]# <span class=term_command>date 120716362006</span>
Thu Dec  7 16:36:00 CST 2006
<span class=term_say># 瞧!时间立刻就修改过来了!</span>
</pre></td></tr></table>

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>hwclock [-rw]</span>
<span class=term_say>参数∶
-r ∶亦即 read ,读出目前 BIOS 内的时间参数;
-w ∶亦即 write ,将目前的 Linux 系统时间写入 BIOS 当中啊!</span>

<span class=term_hd>2. 查阅 BIOS 时间,并且写入更改过的时间棉!</span>
[root@linux ~]# <span class=term_command>hwclock -r</span>
Thu Dec  7 15:37:44 2006  -0.627128 seconds
<span class=term_say># 看一看,是否刚好差异约一个小时啊!这就是 BIOS 时间!</span>

[root@linux ~]# <span class=term_command>hwclock -w</span>
<span class=term_say># 这样就写入棉~很简单吧!</span>
</pre></td></tr></table>

		这样可以了解了吗?当我们进行完 Linux 时间的校时后,还需要以 hwclock 来更新 BIOS 
		的时间,因为每次开机的时候,系统会重新由 BIOS 将时间读出来,所以, BIOS 才是重要的时间依据呐。<br /><br />
	</div>

	<hr /><a NAME="client_linux"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">Linux 的网路校时</span><br />
	<div class=block2>
		在 Linux 的环境当中可利用 NTP 的用户端程式,亦即是 ntpdate 这支程式就能够进行时间的同步化。
		不过你要知道的是,<span class=text_import2>因为 NTP 伺服器本来就会与上层时间伺服器进行时间的同步化,
		所以在预设的情况下,NTP 伺服器不可以使用 ntpdate !也就是说 ntpdate 与 ntpd 不能同时启用的。</span>
		所以你不要在 NTP server 上头执行这个指令呦!我们就来看看如何处理吧!<br />

<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>ntpdate [-nv] [NTP IP/hostname]</span>
<span class=term_say>参数∶
-d ∶进入除错模式 (debug) ,可以显示出更多的有效资讯。</span>

[root@linux ~]# <span class=term_command>ntpdate 192.168.1.254</span>
 7 Dec 17:21:46 ntpdate[1427]: adjust time server 192.168.1.254 offset -0.0147 sec
<span class=term_say># 最后面会显示微调的时间有多少 (offset)</span>

[root@linux ~]# <span class=term_command>hwclock -w</span>
<span class=term_say># 还得写入 BIOS 时间才行啊!</span>

[root@linux ~]# <span class=term_command>vi /etc/crontab</span>
<span class=term_say># 加入这一行去!</span>
<span class=term_write>10 5 * * * root /usr/sbin/ntpdate tock.stdtime.gov.tw && /sbin/hwclock -w</span>
</pre></td></tr></table>

		使用 cron 之后,每天 5:10 Linux 系统就会自动的进行网路校时棉!相当的简易吧!<br /><br />
	</div>

	<hr /><a NAME="client_windows"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class="text_h2">Windows 的网路校时</span><br />
	<div class=block2>
		或许你一直都没发现,其实 Windows 在预设的情况当中,已经帮我们处理了网路校时的工作喔!
		不管你愿不愿意.....你可以将滑鼠的指标指在工作列右下角的时间处按两下,就会出现如下的画面∶<br /><br />

		<a name="fig_02"></a><center><img src="0440ntp/windows.png"
		title="Windows XP 提供的网路校时功能"
		alt="Windows XP 提供的网路校时功能"><br />
		图二、Windows XP 提供的网路校时功能</center><br />

		如上所示,你可以自行填写台湾的时间伺服器来对应时间,当然也可以填写你自己的时间伺服器啊!
		之后系统就会主动的上网去更新时间了。不过,这是 Windows XP 才有的功能,如果是比较早期的 Windows ,
		例如 Windows 95/2000 预设是没有这个功能的。不过也没有关系,
		因为国家频率与时间标准实验室 (<a href="http://www.stdtime.gov.tw/" 
		target="_blank">http://www.stdtime.gov.tw/</a>) 也有提供一个用户端软体喔!连结资料如下∶<br />

		<ul><a href="http://www.stdtime.gov.tw/chinese/EXE/NTPClock.exe"
		target="_blank">http://www.stdtime.gov.tw/chinese/EXE/NTPClock.exe</a></ul>

		你可以下载,直接执行他就知道如何处理了,因为是全中文介面的图形化软体嘛!<br />
	</div>
</div>


<hr /><a NAME="review"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">重点回顾</span><br />
<div class=block1>
<ul><span class=text_import2>
	<li>地球共有 24 个时区,而以格林威治时间 (GMT) 为标准时间;
	<li>台湾本地时间为 GMT + 8 小时;
	<li>最准确的时间为使用原子钟 (Atomic clock) 所计算的,例如 UTC (Coordinated Universal Time) 就是一例;
	<li>Linux 系统本来就有两种时间,一种是 Linux 以 1970/01/01 开始计数的系统时间,一种则是 BIOS 记载的硬体时间;
	<li>Linux 可以透过网路校时,最常见的网路校时为使用 NTP 伺服器,这个服务启动在 udp port 123;
	<li>时区档案主要放置于 /usr/share/zoneinfo/ 目录下,而本地时区则参考 /etc/localtime;
	<li>NTP 伺服器为一种阶层式的服务,所以 NTP 伺服器本来就会与上层时间伺服器作时间的同步化,
		因此 nptd 与 ntpdate 两个指令不可同时使用;
	<li>NTP 伺服器的连线状态可以使用 ntptrace 及 ntpq -p 来查询;
	<li>NTP 提供的用户端软体为 ntpdate 这个指令;
	<li>在 Linux  下想要手动处理时间时,需以 date 设定时间后,以 hwclock -w 来写入 BIOS 所记录的时间。
	<li>在 LPI 网站 <a href="http://www.lpi.org" target="_blank">http://www.lpi.org</a> 里面提到的,在 LPI 102 
		里面 NTP 其实考的还不少!Topic 1.111.6 Maintain system time 里面说到,应试者应该要了解 
		BIOS 时间与 UTC 时间的意义,同时需要知道怎么设定 timezone ,而时间差所使用的档案 driftfile 
		也需要了解呐!可能会考的内容含有∶<ul>
		<li>date
		<li>hwclock
		<li>ntpd
		<li>ntpdate
		<li>/usr/share/zoneinfo
		<li>/etc/localtime
		<li>/etc/ntp.conf
		<li>/etc/ntp.drift (新版已经改至 /var/lib/ntp/drift)</ul>
</span></ul>
</div>


<hr /><a NAME="ex"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">课后练习</span><br />
<div class=block1>
<ul>
	<li>什么是 GMT (格林威治) 时间与 UTC 时间?</li>
	<div class=block2><font color=white size=-1>
	由于地球是圆的,所以同一时间点上,在地球共可分为 24 个时区,其中,我们以欧洲的格林威治时间为一个对照的依据,这个即是 
	GMT 时间。台湾时间比 GMT 时间快了 8 小时。至于 UTC 时间则是由原子钟所计算的时间,这个时间是相当的准确的,
	主要仍以格林威治时间为时区!
	</font></div>

	<li>Linux 系统的所有时区档案放置哪一个目录底下?</li>
	<div class=block2><font color=white size=-1>
	所有的时区档案放置于∶/usr/share/zoneinfo 底下!至于系统时区的设定档则在 /etc/sysconfig/clock 与 /etc/localtime 喔!
	</font></div>

	<li>我的 Linux 主机本来放置在日本东京,现在想将他拿到台湾来运作,不过因为日本与台湾有一个小时的时差,
		所以我的时间应该需要经过调整才行。不过,因为我的 BIOS Time 主要是依据 UTC 
		时间来设定的,所以似乎只要更动时区参数即可。请问我该如何设定时区,好让我的
		Linux 主机能够显示正确的时间?</li>
	<div class=block2><font color=white size=-1>
		先将 /etc/localtime 删除,然后将 /usr/share/zoneinfo/Asia/Taipei 这个档案复制成为 /etc/localtime 即可!
	</font></div>

	<li>目前 Linux 系统上面的时间伺服器主要是以 NTP 为主,请问这个 daemon 的主要设定档放在哪里,而该设定档中,针对上层
		time server 的设定参数为何?而那个 driftfile 参数是干嘛用的?</li>
	<div class=block2><font color=white size=-1>
		在 /etc/ntp.conf 这个档案当中,至于上层 time server 的设定参数为 server 啊!那个 driftfile 
		则是用来做为『时间差额』的计算的!该参数后面接的是一个完整路径的档名,该档案里面的数值单位为百万分之一(ppm)。
	</font></div>

	<li>请问 ntptrace 的功能为何?</li>
	<div class=block2><font color=white size=-1>
	可以用来追踪上层 time server 的连线时间与目前时间!
	</font></div>

	<li>我以 date 更新了我 Linux 上面的时间后,该如何将时间数据写入 BIOS 内?</li>
	<div class=block2><font color=white size=-1>
	必须利用 hwclock 这个程式来写入,利用 hwclock -w 写入 BIOS 
	</font></div>

	<li>在 Linux 上面如何进行网路校时?</li>
	<div class=block2><font color=white size=-1>
	最简单的方法即是使用『 ntpdate time.servers.ip && hwclock -w 』即可!
	</font></div>
</div>


<hr /><a NAME="reference"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">参考资料</span><br />
<div class=block1>
<ul>
	<li>NTP 的官方网站∶<a href="http://www.ntp.org" target="_blank">http://www.ntp.org</a></li>
	<li>时间伺服器网页∶<a href="http://www.stdtime.gov.tw/Time/home.htm" 
		target="_blank">http://www.stdtime.gov.tw/Time/home.htm</a><br />
	<li>NTP 网站∶<a href="http://www.eecis.udel.edu/~mills/ntp/html/ntpd.html" 
		target="_blank">http://www.eecis.udel.edu/~mills/ntp/html/ntpd.html</a></li>
</ul>
</div>


<hr><span class="text_history">
2003/08/21∶首次完成<br />
2006/12/05∶将旧的文章移动到<a href="0440ntp/0440ntp.php">此处</a><br />
2006/12/08∶将文章作了个版面修改,同时将一些资料再加强一些。并补充一些额外的查阅 NTP 的指令。<br />
</span>
<hr><span class="text_date">2003/08/21以来统计人数</span><br>
<img 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -