當前位置:首頁 » 操作系統 » linux時間設置與同步

linux時間設置與同步

發布時間: 2023-05-22 11:45:23

『壹』 如何使兩台linux伺服器時間同步

Linux自帶了ntp服務 -- /etc/init.d/ntpd,這個服務不僅可以設置讓本機和某台/某些機器做時間同步,他本身還可以扮演一個timeserver的角色,讓其他機器和他同步時間。

配置文件就是/etc/ntp.conf。

為了測試,設置讓node2 -- 192.168.1.102和node1 -- 192.168.1.101做時間同步。
第一步,
node1做time server,node1本身不和其他機器時間同步,就是取本地時間。
所以,先把node1機器的時間調准了:

[root@node1 ~]date -s 08/03/2011

[root@node1 ~]date -s11:12:00

[root@node1 ~]clock -w
[root@node1 ~]hwclock --systohc

後兩個命令是把設置的時間寫到硬體時間中去(也就是CMOS裡面的時間)。

第二步,
然後將node1配置成一個time server,修改/etc/ntp.conf,
[root@node1 ~]vi /etc/ntp.conf
其他的配置不怎麼需要改,只需要關注restrict的配置:

1. 注釋掉原來的restrict default ignore這一行,這一行本身是不響應任何的ntp更新請求,其實也就是禁用了本機的ntp server的功能,所以需要注釋掉。

2. 加入:restrict 192.168.1.0 mask 255.255.255.0 -- 讓192.168.1.0/24網段上的機器能和本機做時間同步

3. 這樣就可以了,記得下面的:

server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10

這兩行需要,這是讓本機的ntpd和本地硬體時間同步。

當然,我們也可以添加server xxx.xxx.xxx.xxx,讓他和其他的time server時間同步。

4. /etc/init.d/ntpd restart

5. chkconfig ntpd on

6. 修改iptables配置,將tcp和udp 123埠開放,這是ntp需要的埠,在/etc/services中可以查到這個埠。

第三步,
這樣node1就成為一台time server了,現在我們配置node2這台機器,也是修改/etc/ntp.conf ,
[root@node2 ~]vi /etc/ntp.conf

1. restrict default ignore這行保留為注釋狀態,因為sales不需要做time server

2. 注釋掉server 127.127.1.0, fudge 127.127.1.0 stratum 10這兩行,因為這台機器不需要和本地硬體時鍾同步了。

3. 加入server 192.168.1.101這行,和node1機器同步。


這樣就OK了。看看時間,已經和node1同步了。往後默認配置好像是5分鍾和time server同步一次。ntpdate命令是顯式的和某台機器做時間同步,以前將ntpdate放到crontab中定期同步也是可以的,但是既然ntpd本身就可以做這個時間

第四步,將ntpdate放到crontab中定期步也是可以的
[root@node2 ~]#vi ntpupdate.sh
/usr/sbin/ntpdate 192.168.1.101
[root@node2 ~]#chmod 755 ntpupdate.sh
[root@node2 ~]#crontab -e
*/1 * * * * /root/ntpupdate.sh
[root@node2 ~]#/etc/init.d/crond restart

『貳』 Linux 時間同步

在Linux系統中存在兩個時鍾時間,分別是

硬體時鍾是指的在主板上的時鍾設備,也就是通常可以在BIOS畫面設置的時鍾,即使關機狀態也可以計算時間。

而系統時鍾則是指Kernel中的時鍾,其值是由1970年1月1日00:00:00 UTC時間至當前時間所經歷的秒數總和。當Linux啟動的時候,系統時鍾會讀取硬體時鍾的設定,之後系統時鍾獨立運作。長時間運行兩者可能將會產生誤差。另外所有的Linux相關指令都是讀取系統時鍾指定的,如date。

我們這里討論的是系統時間。

NTP,網路時間協議,使用 123/udp 埠進行網路時鍾同步;NTP 是仍在使用中的最古老的網路傳輸協議之一(1985 年前開始)。

以前Linux時間同步基本是使用 ntpdate 和 ntpd 這兩個工具實現的,但是這兩個工具已經很古老了。

【注】ntpdate和ntpd是互斥的,兩者不能同時使用。ntpd是步進式平滑的逐漸調整時間,而ntpdate是斷點式更新時間。

RHEL/CentOS 7.x 已經將 chrony 作為默認時間同步工具了。

其他Linux (如 ubuntu) 使用 systemd-timesyncd 服務。

chrony 是 RedHat 開發的,它是網路時間協議(NTP)的另一種實現;

RHEL/CentOS 7.x 的默認時間同步工具;

chrony 可以同時做為 ntp 服務的客戶端和服務端;安裝完後有兩個程序 chronyd、chronyc:

chronyd 是一個 daemon 守護進程,chronyc 是用來監控 chronyd 性能和配置參數的命令行工具。

系統版本:CentOS 7.5

chrony_server(relay):10.0.0.4
chrony_client:10.0.0.5

Edit file /etc/chrony.conf

默認已經啟動,不需要調整

example:

配置 chrony

edit file: /etc/chrony.conf

再次用chronyc 命令檢查,比較它與chronyd server的差異

systemd-timesyncd 是一個用於跨網路同步系統時鍾的守護服務。它實現了一個 SNTP 客戶端,但更輕量級,更集成systemd。

systemd-timesyncd 啟動時會讀取 /etc/systemd/timesyncd.conf 配置文件,內容如下:

你可以輸入你希望使用的其它時間伺服器,比如你自己的本地 NTP 伺服器,在 NTP= 行上輸入一個以空格分隔的伺服器列表。

如果伺服器可以直接連接internet,不用修改默認配置;如果在內網,需要單獨指定。

在最新的 Ubuntu 版本中,timedatectl 替代了老舊的 ntpdate。默認情況下,timedatectl 在系統啟動的時候會立刻同步時間,並在稍後網路連接激活後通過 socket 再次檢查一次。

timesyncd 替代了 ntpd 的客戶端的部分。默認情況下 timesyncd 會定期檢測並同步時間。它還會在本地存儲更新的時間,以便在系統重啟時做時間單步調整。

通過 timedatectl 和 timesyncd 設置的當前時間狀態和時間配置,可以使用 timedatectl status 命令來進行確認。

由於 timedatectl 的存在,各發行版已經棄用了 ntpdate,默認不再進行安裝。

timedatectl
timedatectl status ,查看時間同步狀態;
timedatectl set-ntp true ,開啟網路時間同步;

timedatectl set-timezone ZONE ,設置時區。

NTP synchronized: yes 表示時間是同步狀態。

查看服務狀態以及從哪個ntp server同步時間。

NTP:軟體層面實現,成本低。同步精度10ms左右。

PTP:需要網路介面具備在物理層提供時間戳的功能,同步精度優於100ns,區域網的節點需要使用支持PTP功能的交換機。區域網網路接點不支持PTP的話,只能同不到us,而且受網路背景流量影響。

『叄』 如何在linux 上配置NTP 時間同步

一:NTP是網路時間同步協議,就是用來同步網路中各個計算機的時間的協議

二:NTP服務端配置

2.1、檢查系統是否安裝了NTP包(linux系統一般自帶NTP4.2),沒有安裝我們直接使用yum命令在線安裝: yum install ntp

2.2、NTP服務端配置文件編輯: vim /etc/ntp.conf

結果:

restrict 控制相關許可權。

語法為: restrict IP地址 mask 子網掩碼 參數

其中IP地址也可以是default ,default 就是指所有的IP

參數有以下幾個:

ignore :關閉所有的 NTP 聯機服務

nomodify:客戶端不能更改服務端的時間參數,但是客戶端可以通過服務端進行網路校時。

notrust :客戶端除非通過認證,否則該客戶端來源將被視為不信任子網

noquery :不提供客戶端的時間查詢:用戶端不能使用ntpq,ntpc等命令來查詢ntp伺服器

notrap :不提供trap遠端登陸:拒絕為匹配的主機提供模式 6 控制消息陷阱服務。陷阱服務是 ntpdq 控制消息協議的子系統,用於遠程事件日誌記錄程序。

nopeer :用於阻止主機嘗試與伺服器對等,並允許欺詐性伺服器控制時鍾

kod : 訪問違規時發送 KoD 包。

restrict -6 表示IPV6地址的許可權設置。

root@www ~]#vim /etc/ntp.conf# 1. 先處理許可權方面的問題,包括放行上層伺服器以及開放區網用戶來源:restrict default kod nomodify notrap nopeer noquery <==拒絕 IPv4 的用戶restrict -6 default kod nomodify notrap nopeer noquery <==拒絕 IPv6 的用戶restrict 220.130.158.71 <==放行 tock.stdtime.gov.tw 進入本 NTP 伺服器restrict 59.124.196.83 <==放行 tick.stdtime.gov.tw 進入本 NTP 伺服器restrict 59.124.196.84 <==放行 time.stdtime.gov.tw 進入本 NTP 伺服器restrict 127.0.0.1 <==底下兩個是預設值,放行本機來源restrict -6 ::1restrict 192.168.100.0 mask 255.255.255.0 nomodify <==放行區網來源# 2. 設定主機來源,請先將原本的 [0|1|2].centos.pool.ntp.org 的設定註解掉:server 220.130.158.71 prefer <==以這部主機為最優先server 59.124.196.83server 59.124.196.84# 3.預設時間差異分析檔案與暫不用到的 keys 等,不需要更動它:driftfile /var/lib/ntp/driftkeys /etc/ntp/keys

ntpd、ntpdate的區別

下面是網上關於ntpd與ntpdate區別的相關資料。如下所示所示:

使用之前得弄清楚一個問題,ntpd與ntpdate在更新時間時有什麼區別。ntpd不僅僅是時間同步伺服器,它還可以做客戶端與標准時間伺服器進行同步時間,而且是平滑同步,並非ntpdate立即同步,在生產環境中慎用ntpdate,也正如此兩者不可同時運行。

時鍾的躍變,對於某些程序會導致很嚴重的問題。許多應用程序依賴連續的時鍾——畢竟,這是一項常見的假定,即,取得的時間是線性的,一些操作,例如資料庫事務,通常會地依賴這樣的事實:時間不會往回跳躍。不幸的是,ntpdate調整時間的方式就是我們所說的」躍變「:在獲得一個時間之後,ntpdate使用settimeofday(2)設置系統時間,這有幾個非常明顯的問題:

第一,這樣做不安全。ntpdate的設置依賴於ntp伺服器的安全性,攻擊者可以利用一些軟體設計上的缺陷,拿下ntp伺服器並令與其同步的伺服器執行某些消耗性的任務。由於ntpdate採用的方式是跳變,跟隨它的伺服器無法知道是否發生了異常(時間不一樣的時候,唯一的辦法是以伺服器為准)。

第二,這樣做不精確。一旦ntp伺服器宕機,跟隨它的伺服器也就會無法同步時間。與此不同,ntpd不僅能夠校準計算機的時間,而且能夠校準計算機的時鍾。

第三,這樣做不夠優雅。由於是跳變,而不是使時間變快或變慢,依賴時序的程序會出錯(例如,如果ntpdate發現你的時間快了,則可能會經歷兩個相同的時刻,對某些應用而言,這是致命的)。因而,唯一一個可以令時間發生跳變的點,是計算機剛剛啟動,但還沒有啟動很多服務的那個時候。其餘的時候,理想的做法是使用ntpd來校準時鍾,而不是調整計算機時鍾上的時間。

NTPD 在和時間伺服器的同步過程中,會把 BIOS 計時器的振盪頻率偏差——或者說 Local Clock 的自然漂移(drift)——記錄下來。這樣即使網路有問題,本機仍然能維持一個相當精確的走時。

『肆』 linux伺服器怎麼同步修改時間

一、搭建時間伺服器
1、在一台linux伺服器安裝ntp server

2、修改ntp.conf配置文件
vi /etc/ntp.conf
restrict default nomodify
(允許任何IP的客戶機都可以進行時間同步,如果是只允許某個網段的客戶機進行時間同步可以這樣寫restrict 10.58.26.0 mask 255.255.255.0 nomodify)
3、以守護進程啟動ntpd
#/etc/rc.d/init.d/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid
#/etc/rc.d/init.d/ntpd start

二、配置時間同步客戶機
ntpdate 10.128.14.25
hwclock -w
使用cron 定時同步
vi /var/spool/cron/root(或crontab -e)
增加一行,在每天的1點10分、9點10分、17點10分與時間同步伺服器進行同步並寫入BIOS
10 1 ,9,17* * * root /usr/sbin/ntpdate 10.128.14.25; /sbin/hwclock -w

『伍』 Linux集群系統時間同步

環境准備:

要做到伺服器集群的時間同步,集群中各台機器的時區必須相同的,我們在國內就使用中國時區,如果你的機器的時區不是"Asia/Shanghai",需要修改時區

CentOS 中時區是以文件形式存在,當前正在使用的時區文件位於
/etc/localtime ,其他時區文件則位於 /usr/share/zoneinfo 下,中國時區的文件全路徑是 /usr/share/zoneinfo/Asia/Shanghai

要更改時區,直接使用如下命令就OK

需要使用 tzselect 命令去生成時區文件,生成好的時區文件就在/usr/share/zoneinfo 目錄下,具體步驟去下:

使用 date -s 命令來修改系統時間

讓集群所有的伺服器的時間同步,就用遠程連接工具連接所有伺服器,然後在所有的伺服器中同時執行 date -s 命令設置時間,然後在所有的伺服器中執行 hwclock -w 命令即可

美國標准技術院時間伺服器:time.nist.gov(192.43.244.18)
上海交通大學網路中心NTP伺服器地址:ntp.sjtu.e.cn(202.120.2.101)
中國國家授時中心伺服器地址:cn.pool.ntp.org(210.72.145.44)

若以上提供的網路時間伺服器不可用,請自行上網尋找可用的網路時間伺服器

<1> 使用命令: crontab -e

<2> 然後往裡加入一行內容

上面的配置表示,每隔十分鍾從 202.120.2.101 該時間伺服器同步一次時間。

<3> 保存退出

以上兩步操作可以讓node01這個伺服器每隔10分鍾去指定的伺服器同步時間,如果需要讓集群中的所有伺服器(hadoop01-hadoop04)時間同步,那麼每台伺服器都要做以上兩步操作。

node01的IP為192.168.21.101,讓它作為時間伺服器,192.168.21.0區域網內的所有伺服器都向它同步時間,而node01這台時間伺服器本身,向外網時間伺服器同步時間(比如中國國家授時中心伺服器)

我用node01

我去掉了所有的默認注釋,對其中的修改寫了自己的注釋,沒有寫注釋的是默認配置

因為ntpd服務開啟之後,就不能手動同步時間了,那麼為什麼要先手動同步時間呢?
當server(中國國家授時中心伺服器)與client(node01)之間的時間誤差過大時(可能是1000秒),node01去同步時間可能對系統和應用帶來不可預知的問題,node01將停止時間同步!所以如果發現node01啟動之後時間並不進行同步時,應該考慮到可能是時間差過大引起的,此時需要先手動進行時間同步!

看到紅色框中的內容,表示連接和監聽已正確

這里的前4行就是我們配置的4個中國國家授時中心的伺服器的信息

最後一行就是本地時間服務的信息

下面對每個列的意義進行說明:

同樣,服務啟動後需要等待5-10分鍾才能看到這個正常的信息
到這里,我們區域網內的時間伺服器node01就已經配置完畢了

文件內容如下:
同樣,沒有寫注釋的都是默認的配置

原因同(5)

到這里,利用區域網內一台時間伺服器來同步整個集群時間的全部配置就已經完成

說明:若以上提供的網路時間伺服器不可用,請自行上網尋找可用的網路時間伺服器,另外需要關閉各伺服器的防火牆,才能進行時間同步

參考文章:
內網環境NTP服務及時間同步(CentOS6.x)配置和部署
配置NTP服務ntpd/ntp.conf(搭建Hadoop集群可參考)

『陸』 linux配置多台伺服器時間同步.

一、設置A伺服器為時間伺服器(加入A伺服器IP為172.18.102.2)
1 修改 /etc/ntp.conf,如下所示:
命令:vi /etc/ntp.conf
內容:
# 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
2 啟動時間伺服器,命令如下:
service ntpd status
service ntpd start
3 查看啟動結果,如下所示:
命令:ntpq -p
結果:
remote refid st t when poll reach delay offset jitter
==============================================================================
*LOCAL(0) .LOCL. 5 l 2 64 377 0.000 0.000 0.000
4 設置自啟動,命令如下:
chkconfig ntpd on
二、設置需要同步的伺服器
1 修改 /etc/ntp.conf,如下:
命令:vi /etc/ntp.conf
內容:
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
server 172.18.102.2 # local clock 與伺服器A機時間同步
fudge 172.18.102.2 stratum 10
2 啟動時間伺服器,命令如下:
service ntpd status
service ntpd start
3 查看啟動結果,如下所示:
命令:ntpq -p
結果:
remote refid st t when poll reach delay offset jitter
==========================《Linux就該這么學》一起學習linux
172.18.102.2 LOCAL(0) 6 u 5 64 1 1.377 -7077.8 0.000
4 設置自啟動,命令如下:
chkconfig ntpd on
5 立即同步
ntpdate -d 172.18.102.2

『柒』 linux硬體時間與系統時間同步

方法/步驟

  • 打開Ubuntu虛擬機,在桌面空白處右鍵 -- 打開終端。

『捌』 linux怎麼讓系統時間硬體時間同步

Centos系統,必須同時修改系統時間和硬體時間,才可以保證修改有效,單純的使用date命令修改系統時間,是立即生效,重啟後系統還原。具體操作如下:
1.date {查看目前本地的時間}
2.hwclock --show {查看硬體的時間}
3.如果硬體時間和系統時間不同,那就對硬體的時間進行修改
4.hwclock --set --date '014-12-15 15:15:15' {設置硬體時間為14年12月15日15點15分15秒}
5.hwclock --hctosys {設置系統時間和硬體時間同步}
6.clock -w {保存時鍾}

『玖』 linux虛擬機時間與windows時間如何同步

要讓虛擬機的linux和實際時間一致,最簡單的步驟是:
(1)將虛擬機linux和主機時間同步,可以先在虛擬機的設置裡面-選項-VMware Tools開啟客戶機與主機時間同步(其實默認就開的)
(2)開啟了時間同步但是還是和實際時間不一樣,那麼可能是時區設置不對,這時最簡單的方法是進入系統的圖形界面,點擊右上角的時間,進入時間、時區設置(和window設置時間差不多),edit location,add location,城市輸入shanghai或者beijing,等它自動識別(前提是虛擬機系統聯網了)。最後重啟系統!
注意:也可以從菜單進入system->administration->date&time設置
(3)如果只是虛擬機系統的時間和實際的時間相差16個小時則可以按照下面介紹的方法設置
系統啟動後發現時間顯示問題:
[root@pps ~]# date
Sat Mar 7 08:58:27 PST 2009
其實現在是北京時間 2009年3月8日00:58,相差16個小時。
網上搜索一下PST時間,原來PST時間為美國太平洋標准時間,此時區位於格林威治向西8個時區,晚北京時間16個小時。

發現 /etc/sysconfig/clock 文件配置的是美國時間:
[root@pps ~]# cat /etc/sysconfig/clock
ZONE="America/Los_Angeles"
UTC=true
ARC=false

UTC為true表示RTC保存的時間是UTC時間,false表示保存的是本地時間。
於是將其修改為:
[root@pps ~]# cat /etc/sysconfig/clock
ZONE="Asia/Shanghai"
UTC=false
ARC=false

重啟系統後問題依舊!於是想到了 locale
[root@pps ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

[root@pps ~]# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
修改後為:
[root@pps ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8" /* 英文環境可以改成zh_US.UTF-8 */
SYSFONT="latarcyrheb-sun16"

保存退出再次登陸執行date
[root@pps ~]# date
2009年 03月 07日 星期六 09:13:44 PST

如果上面的是設置不行,嘗試一下下面的命令:
還是顯示PST時間,
# rm /etc/localtime
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

熱點內容
java枚舉使用 發布:2025-04-22 22:06:56 瀏覽:256
分解壓與K 發布:2025-04-22 22:06:40 瀏覽:833
md5加密是對稱加密嗎 發布:2025-04-22 21:51:31 瀏覽:655
高德地圖車機版要安卓什麼版 發布:2025-04-22 21:41:20 瀏覽:196
一鍵ftp伺服器搭建腳本 發布:2025-04-22 21:36:28 瀏覽:87
g代碼編譯器 發布:2025-04-22 20:25:20 瀏覽:275
段式編譯器 發布:2025-04-22 20:15:45 瀏覽:205
android原版 發布:2025-04-22 20:15:04 瀏覽:78
特種兵一個組怎麼配置 發布:2025-04-22 20:01:15 瀏覽:734
oracle資料庫命令 發布:2025-04-22 19:47:55 瀏覽:564