當前環境:
Windows 10 可上網主機(IP 10.188.201.36), virtualBox + debian 虛擬機& 橋接模式可上網(IP 10.188.201.8)。
目標:
配置Windows為NTP服務器,配置虛擬機為客戶端。 虛擬機時間定時同步到硬件。
步驟:
一.配置windows機為NTP服務器
1. 在Windows 服務器下,按住“ windows+r ”打開“運行”對話框,輸入regedit,點擊“確定”打開注冊表。
2、在注冊表中依次展開:HKEY_LOCAL_MACHINE、SYSTEM、CurrentControlSet、Services、W32Time、TimeProviders、NtpServer,
在NtpServer項的右側鍵值ENablied,將默認的0改為1,1為啟用NTP服務器。
3、再在注冊表中依次展開:HKEY_LOCAL_MACHINE、SYSTEM、CurrentControlSet、Services、W32Time、Config
找到Config項右側的AnnounceFlags。
把默認的10改為5,5的意思就是自身為可靠的時間源。
4、修改完以上之后關閉注冊表編輯器,以管理員身份打開命令行。
5、在命令提示符中輸入:net stop w32Time,回車
等待NTP服務停止。
然后再輸入:net start w32Time,回車
啟動NTP服務。
二,配置虛擬機為NTP客戶端
1.確認是否安裝NTP包(有點復雜哈)。
因為linux安裝軟件的方式比較多,所以沒有一個通用的辦法能查到某些軟件是否安裝了。總結起來就是這樣幾類:
1、rpm包安裝的,可以用rpm -qa看到,如果要查找某軟件包是否安裝,用 rpm -qa | grep “軟件或者包的名字”。
[root@hexuweb102 ~] rpm -qa | grep ruby
2、以deb包安裝的,可以用dpkg -l能看到。如果是查找指定軟件包,用dpkg -l | grep “軟件或者包的名字”;
[root@hexuweb102~]dpkg-l|grepruby
3、yum方法安裝的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep “軟件名或者包名”;
[root@hexuweb102 ~] yum list installed | grep ruby
4、如果是以源碼包自己編譯安裝的,例如.tar.gz或者tar.bz2形式的,這個只能看可執行文件是否存在了,
上面兩種方法都看不到這種源碼形式安裝的包。如果是以root用戶安裝的,可執行程序通常都在/sbin:/usr/bin目錄下。
說明:其中rpm yum 是Redhat系linux的軟件包管理命令,dpkg是debian系列的軟件包管理命令
我直接在最外層,which ntpd, 如果能找到,說明安裝了,否則沒有安裝。
命令行進入最外層目錄 # cd /
查找ntpd是否存在 # which ntpd
2.如果沒有安裝,進行裝包
sudo apt-get install ntpdate
或者直接下載NTP源碼,進行離線安裝。
解壓 # tar -zxvf ntp.4.3.2.1.tar.gz
進入解壓后的文件夾,進行編譯准備 # ./configure
編譯 # make
安裝 # make install
臨時文件清除 # make clean
3. 修改ntp.conf 配置文件
查找文件位置
編輯打開,追加服務器IP地址。
3.同步ntp
ntpdate -u 10.188.201.8
4. 發現客戶端時區不對,對客戶端時區進行配置。
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 設置時區為上海
如果重啟系統后,時區又恢復到原來的設定項,需要進行時區選擇:
執行tzselect命令 --> 選擇Asia --> 選擇China --> 選擇Beijing — 選擇yes ,
執行完tzselect命令選擇時區后,時區並沒有更改,將export TZ=Asia/Shanghai 添加到/etc/profile文 件中去,然后退出並重新登陸即可。
sed -i '$a\export TZ=Asia/Shanghai' /etc/profile && source /etc/profile && date
5. 同步系統時間到硬件。
手動執行命令 # hwclock -w ,通過# date 查看系統時間,# hwclock 查看硬件時間,確認同步。
如果想定期將系統時間同步到硬件時間,可以加入定期任務。
編輯打開 # crontab -e
追加定時執行命令 # */1 * * * * /sbin/hwclock -w //每一分鍾,執行系統時間同步到硬件的命令一次。
為了 確認定時任務是夠被執行,追加log命令 # */1 * * * * echo 1 >>/root/crontest.log //每一分鍾,輸出1到crontest.log