在Windwos中,系統時間的設置很簡單,界面操作,通俗易懂。而且設置後,重啓,關機都沒關係。系統時間會自動保存在Bios的時鐘裏面,啓動計算機的時候,系統會自動在Bios裏面取硬件時間,以保證時間的不間斷。
一.Linux系統時間的設置
//查看時間
[root@localhost ~]# date
2008年 12月 12日星期五 14:44:12
CST
//修改時間
[root@localhost ~]# date -set
2009年 01月 01日星期四 00:01:00
CST
//date 有幾種時間格式可接受,這樣也可以設置時間:
[root@localhost ~]# date 012501012009.30
2009年 01月 25日星期日 01:01:30
CST
//查看硬件時間可以是用hwclock,hwclock --show 或者hwclock -r
[root@localhost ~]# hwclock --show
2008年12月12日星期五 06時52分07秒
//
[root@localhost ~]# hwclock --set --date="1/25/09 00:00" <== 月/日/年時:分:秒
[root@localhost ~]# hwclock
2009年01月25日星期日 00時00分06秒
[root@localhost ~]# hwclock
三.系統時間和硬件時間的同步
//以系統時間爲基準,修改硬件時間
[root@localhost ~]# hwclock --systohc<== sys(系統時間)to(寫到)hc(Hard
Clock)
[root@localhost ~]# hwclock -w
//以硬件時間爲基準,修改系統時間
[root@localhost ~]# hwclock --hctosys
[root@localhost ~]# hwclock -s
四.不同機器之間的時間同步
[root@linux ~]# ntpdate [-nv] [NTP IP/hostname]
[root@linux ~]# ntpdate 192.168.0.2
[root@linux ~]# ntpdate time.ntp.org
0 12 * * * * /usr/sbin/ntpdate 192.168.0.1
五.ntpd服務的設置
1./etc/ntp.conf:這個是NTP daemon的主要設文件,也是 NTP 唯一的設定文件。
2./usr /share/zoneinfo/:在這個目錄下的文件其實是規定了各主要時區的時間設定文件,例如北京地區的時區設定文件在/usr/share/zoneinfo/Asia/Beijing 就是了。這個目錄裏面的文件與底下要談的兩個文件(clock 與localtime)是有關係的。
3./etc/sysconfig/clock:這個文件其實也不包含在NTP 的 daemon 當中,因爲這個是linux的主要時區設定文件。每次開機後,Linux 會自動的讀取這個文件來設定自己系統所默認要顯示的時間。
4./etc /localtime:這個文件就是“本地端的時間配置文件”。剛剛那個clock 文件裏面規定了使用的時間設置文件(ZONE) 爲/usr/share/zoneinfo/Asia/Beijing ,所以說,這就是本地端的時間了,此時, Linux系統就會將Beijing那個文件另存爲一份/etc/localtime文件,所以未來我們的時間顯示就會以Beijing那個時間設定文件爲準。
5. /etc/timezone:系統時區文件
[root@linux ~]# vi /etc/ntp.conf
# 1. 關於權限設定部分
# 權限的設定主要以 restrict 這個參數來設定,主要的語法爲:
# restrict
IP mask netmask_IP parameter
# 其中 IP 可以是軟件地址,也可以是 default ,default 就類似 0.0.0.0
# 至於paramter則有:
# ignore :關閉所有的 NTP 聯機服務
# nomodify:表示 Client 端不能更改 Server 端的時間參數,不過,
# Client 端仍然可以透過 Server 端來進行網絡校時。
# notrust:該 Client 除非通過認證,否則該 Client 來源將被視爲不信任網域
# noquery:不提供 Client 端的時間查詢
# notrap:不提供trap這個遠程事件登入
# 如果paramter完全沒有設定,那就表示該 IP (或網域)“沒有任何限制”
restrict default nomodifynotrapnoquery # 關閉所有的 NTP 要求封包
restrict 127.0.0.1 #這是允許本級查詢
restrict 192.168.0.1 mask 255.255.255.0 nomodify
#在192.168.0.1/24網段內的服務器就可以通過這臺NTP
Server進行時間同步了
# 2. 上層主機的設定
# 要設定上層主機主要以 server 這個參數來設定,語法爲:
# server
[IP|HOST Name] [prefer]
# Server 後面接的就是我們上層 Time
Server 囉!而如果 Server 參數
# 後面加上perfer的話,那表示我們的 NTP 主機主要以該部主機來作爲
# 時間校正的對應。另外,爲了解決更新時間封包的傳送延遲動作,
# 所以可以使用driftfile來規定我們的主機
# 在與 Time
Server 溝通時所花費的時間,可以記錄在driftfile
#
#
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server cn.pool.ntp.org prefer
#其他設置值,以系統默認值即可
server
fudge
driftfile /var/lib/ntp/drift
broadcastdelay
keys /etc/ntp/keys
總結一下,restrict用來設置訪問權限,server用來設置上層時間服務器,driftfile用來設置保存漂移時間的文件。
六.ntp服務的啓動與觀察
在啓動NTP服務前,先對提供服務的這臺主機手動的校正一次時間咯。(因爲啓動服務器,端口會被服務端佔用,就不能手動同步時間了)
[root@linux ~] # ntpdate cn.pool.ntp.org
25 Apr 14:33:51 ntpdate[8310]: step time server 80.85.129.2 offset 6.655976 sec
然後,啓動ntpd服務:
[root@linux ~] # servicentpd start
或 [root@linux ~] # /etc/init.d/ntpd start
查看端口:
[root@linux ~] # netstat -ln|grep 123
udp
udp
udp
udp
如何確認我們的NTP服務器已經更新了自己的時間呢?
[root@linux ~] # ntpstat
synchronized to NTP server(127.127.1.0) at stratum 11
time correct to within 950ms
polling server every 64 s
#改指令可列出NTP服務器是否與上層聯機。由上述輸出結果可知,時間校正約
#爲950*10(-6)秒。且每隔64秒會主動更新時間。
常見的錯誤:
25 Apr 15:30:17 ntpdate[11520]: no server suitable for synchronization found
其實,這不是一個錯誤。而是由於每次重啓NTP服務器之後大約要3-5分鐘客戶端才能與server建立正常的通訊連接。當此時用客戶端連接服務端就會報這樣的信息。一般等待幾分鐘就可以了。
[root@linux ~] # ntptrace –n 127.0.0.1
127.0.0.1:stratum 11, offset 0.000000,synch distance 0.950951
222.73.214.125:stratum 2,offset –0.000787,synch distance 0.108575
209.81.9.7:stratum 1,offset 0.000028,synch distance 0.00436,refid ‘GPS’
#這個指令可以列出目前NTP服務器(第一層)與上層NTP服務器(第二層)彼此之間的
#關係
[root@linux ~] # ntpq –p
指令“ntpq -p”可以列出目前我們的NTP與相關的上層NTP的狀態,以上的幾個字段的意義如下:
remote:即NTP主機的IP或主機名稱。注意最左邊的符號,如果由“+”則代表目前正在作用鐘的上層NTP,如果是“*”則表示也有連上線,不過是作爲次要聯機的NTP主機。
refid:參考的上一層NTP主機的地址
st:即stratum階層
when:幾秒前曾做過時間同步更新的操作
poll:下次更新在幾秒之後
reach:已經向上層NTP服務器要求更新的次數
delay:網絡傳輸過程鍾延遲的時間
offset:時間補償的結果
jitter:Linux系統時間與BIOS硬件時間的差異時間
在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 這樣,就可以讓硬件時間與系統時間一起同步。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
linux配置時間服務器(ntp)
2007-10-27 16:34
在linux下,我們可以通過自帶的NTP(Network
Time Protocol)協議通過網絡使自己的系統保持精確的時間。可用的公共時間服務器列表可以從下面的地址獲取:
http://ntp.isc.org/bin/view/Servers/NTPPoolServers
NTP是用來使系統和一個精確的時間源保持時間同步的協議。建議大家在自己管理的網絡中建立至少一臺時間服務器來同步本地時間,這樣可以使得在不同的系統上處理和收集日誌和管理更加容易。
介紹一下環境:179爲本地時間服務器,其他服務器和179同步。179和網上時間服務器同步。
一、配置179時間服務器
1、首先查詢NTP軟件版本
rpm
-qa|grepntp
ntp-4.1.2-4.EL3.1
如果沒有可以從linux安裝盤上查找,安裝此ntp包
2、編輯配置文件
vi
/etc/ntp.conf
首先定義服務器
server
pool.ntp.org
restrict
default nomodifynotrapnoquery
restrict
192.168.0.0 mask 255.255.255.0 notrustnomodifynotrap #從192.168.0.1-192.168.0.254的服務器都可以使用我們的NTP服務器來同步時間。
註釋掉以下一行
#restrict
default ignore
3、啓動NTP服務器
#chkconfigntpd
on
#/etc/init.d/ntpd
start
#/etc/init.d/ntpd
stop
#/etc/init.d/ntpd
restart
默認情況下,我們配置的NTP服務器不會去時間源那裏同步時間,所以必須修改/etc/ntp/step-tickers文件,加入我們的時間源,這樣每次通過/etc/init.d/ntpd來啓動服務的時候就會自動更新時間了
檢查服務器同步狀態:
ntpq
-p
ntptrace
192.168.0.179
如果輸出正確,則說明時間服務器成功。每次啓動服務器,會自動同步時間。
配置LINUX客戶端
在linux客戶端上執行ntpdatentp_server_ip就可以根據時間服務器統一局域網的時間了,將上面的命令放到cron裏每天早上3點定期執行,crontab
–e 然後輸入
0
3 * * * /usr/sbin/ntpdate 192.168.0.179
爲什麼電腦要對時?因爲電腦自己的鐘不準。破電腦一天慢五分鐘也不奇怪。
對時需要對到什麼精度?一般家用的電腦時鐘誤差一分鐘完全可以接受。集羣服務器配合工作一般需要所有的時鐘同步在一秒之內。
和誰同步?一般是和世界各地的 NTP (Network Time Protocol)服務器同步的。米國標準時間由 NIST 發佈,NIST 提供了一些服務器。現代 Windows 操作系統自動和 time.windows.com 對時。Linux 下面一般用NTPPool來自動選擇服務器。中國國家授時中心 NTP 210.72.145.44 是中國權威時間。中國教育網有自己的NTP 服務器網。如果是集羣服務器,一般會在內網配置幾個本地 NTP 服務器。
上面這麼多 NTP 服務器有沒有優劣呢?有的,但是對於一般的應用來說,看不出什麼區別。理論上說,NTP 服務器是分等級(Stratum)的,Stratum = 1 的 NTP 服務器是直接和世界標準時鍾同步的,包括 GPS 時間、銫原子鐘、某些手機網絡等。NIST、中國國家授時中心和中國教育網的第一級時間服務器都是這個級別的。Stratum = 2 的 NTP 服務器是和 Stratum = 1的服務器同步的,性能稍差,但精確度也在毫秒的量級,所以用起來沒什麼區別。再往下每同步一級,Stratum 就加一。
Windows 2000 開始包含了自動時間同步的服務。Windows XP 上,打開時間設置就有網絡對時的設置。默認是每星期和time.windows.com 對時一次。這個一星期同步一次太長了,可以通過註冊表調整,或者用Wits修改。
Linux 下面的ntpd就要靈活多啦。默認配置一般足夠好用。下面在 Fedora 下舉個例子。配置:
# grep "^server" /etc/ntp.conf
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server pool.ntp.org
server
啓動ntpd之後查看狀態
# ntpq -pn
==============================================================================
*127.127.1.0
st這列顯示自動選的四個 NTP 服務器都是 Stratum = 2。最後一個是本地時鐘。前四行的 offset 顯示本地時鐘和四個 NTP 服務器都有大概 500 毫秒的差距。ntpstat顯示目前只和本地時鐘同步:
# ntpstat
synchronised to local net at stratum 11
過一會再看:
# ntpq -pn
==============================================================================
+64.25.87.54
+64.72.116.51
*64.72.116.50
+64.72.116.45
# ntpstat
synchronised to NTP server (64.72.116.50) at stratum 3
本地時鐘已經成功和外面的 NTP 服務器同步。ntpq報告中第一列 * 表示目前選擇的主同步服務器,標 + 的表示有可能被用來進一步提高同步精度的次要服務器。因爲是和 Stratum = 2 的服務器同步,所以本地的ntpd Stratum 就是 3 了。一個細節是ntpq對時鐘是慢慢調整的,而不是直接跳好多秒,這樣平滑的調整時間可以保證很多程序的流程平穩。不過,如果時鐘誤差過大,ntpd可能會拒絕調整時間;或者有人也可能希望立刻調正時間,這樣的話可以直接執行命令:ntpdate -b pool.ntp.org(需要停掉ntpd服務執行)。
在我另一個服務器上,配置了好多 NTP 服務器:
# grep "^server" /etc/ntp.conf
server time-a.nist.gov
server time-b.nist.gov
server time.nist.gov
server time.windows.com
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server pool.ntp.org
server
# ntpq -p
==============================================================================
+time-a.nist.gov .ACTS.
*time-b.nist.gov .ACTS.
-time.nist.gov
-time.windows.co 18.26.4.105
-194.109.64.200
-a.mirror.fizzel 43.75.42.44
-enfield.ikk.szt 195.111.99.186
+ntp1.esat.net
LOCAL(0)