linux ntp server

UTC:協調世界時(英:Coordinated Universal Time ,法:Temps Universel Coordonné),又稱世界統一時間,世界標準時間,國際協調時間。英文(CUT)和法文(TUC)的縮寫不同,作爲妥協,簡稱UTC。協調世界時是以原子時秒長爲基礎,在時刻上儘量接近於世界時的一種時間計量系統。

 NTP :network time protocol

 軟件時鐘,1970/1/1 0:0:0 計算的總秒數

 硬件時鐘,bios時間

 

 server主機的port  : UDP  123 端口

 

 選擇多部time server 來做NTPserver,避免單臺壞了,時間無法同步

 

 NTP 的階層概念, 當前主機向上層獲取時間,向下提供時間

 

 

 ntp 

 tzdata :time zone data 提供各個市區對應的顯示格式

 配置文件:

 

/etc/ntp.conf   主要的唯一的配置文件


/usr/share/zoneinfo/*    由tzdata提供,爲各時區的時間格式對應擋


/etc/sysconfig/clock  設定時區,與是否使用UTC時間鐘的配置文件


/etc/localtime  本地端的時間配置文件,會把clock中指定的時區 /usr/share/zoneinfo/

中的時間配置文件拷貝到/etc/localtime中


常用指令:


/bin/date  用於linux軟件時間的修改與顯示

/sbin/hwclock   用於bios時間的修改與顯示,一般是用date修改系統時間後,再用hwclock同步到bios中

/usr/sbin/ntpdate   客戶端時間校正工具

/usr/sbin/ntpd   提供NTP服務


實例:移居美國,如何修改時間


1 date  顯示當前時間,注意看時區

2 vim /etc/sysconfig/clock  

zone="/America/New_York"  修改時區到紐約

3 cp /usr/share/zoneinfo/America/New_York  /etc/localtime  複製紐約的時間格式對應當 到本地時間配置文件中

4 date  查看時區

 

/etc/ntp.conf 


restrict [你的IP]  mask  [netmask_ip] [parameter]

 

 parameter:

 ignore  拒絕所有

 nomodify  客戶端可以連接校正時間,但是不能用ntpc,ntpq修改時間服務器的參數

 noquery 不提供網絡校時

 notrap  不提供trap這個遠程事件登陸的功能

 notrust  拒絕沒有認證的客戶端

 

 特別注意: 如果沒有加參數,表示沒有設置任何限制

 

 server  [ip or hostname] [prefer]

 設置上層ntp服務器,prefer 表示優先使用

 

 driftfile [可以被ntpd寫入的目錄與檔案]

 

 該文件 需要 使用完整的路徑文件名

 不能是鏈接當

 ntpd 這個daemon要有寫入權限

 該文件所記錄的數值單位爲:百萬分之一秒

 

 keys [keys_file]

客戶端還可以通過密鑰來認證



/etc/init.d/ntpd start 

chkconfig  ntpd on 

tail /var/log/messages


netstat -tulnp | grep  ntp

 

ntpstat 



linux 手動校時的工作,date ,hwclock  


date  

date [option] [+format]

date [-u] MMDDhhmm[CC]YY.ss


hwclock  [-rws]


網絡校時


ntpdate  [-dv] [NTP IP/hostname]


ntpdate  ip地址


記得不要在ntpserver 上運行 ntpdate 命令






 

 ntpdate  腳本如下:

 

 

 

 #!/bin/bash

#

# chkconfig: - 57 75

# description: set the date and time via NTP


### BEGIN INIT INFO

# Provides: ntpdate

# Required-Start: $network $local_fs $remote_fs

# Should-Start: $syslog $named

# Short-Description: set the date and time via NTP

# Description: ntpdate sets the local clock by polling NTP servers

### END INIT INFO


# Source function library.

. /etc/init.d/functions


# Source networking configuration.

. /etc/sysconfig/network


prog=ntpdate

lockfile=/var/lock/subsys/$prog

ntpconf=/etc/ntp.conf

ntpstep=/etc/ntp/step-tickers


start() {

[ "$EUID" != "0" ] && exit 4

[ "$NETWORKING" = "no" ] && exit 1

[ -x /usr/sbin/ntpdate ] || exit 5

[ -f /etc/sysconfig/ntpdate ] || exit 6

. /etc/sysconfig/ntpdate


[ -f $ntpstep ] && tickers=$(sed 's/#.*//' $ntpstep) || tickers=


if ! echo "$tickers" | grep -qi '[a-z0-9]' && [ -f $ntpconf ]; then

   # step-tickers doesn't specify a server,

   # use servers from ntp.conf instead

   tickers=$(awk '$1=="peer"||$1=="server"{print $2}' $ntpconf | \

egrep -v '127\.127\.[0-9]+\.[0-9]+')

fi


if ! echo "$tickers" | grep -qi '[a-z0-9]'; then

   echo $"NTP server not specified in $ntpstep or $ntpconf"

   exit 6

fi


echo -n $"$prog: Synchronizing with time server: "


[ -z "$RETRIES" ] && RETRIES=2

retry=0

while true; do

/usr/sbin/ntpdate $OPTIONS $tickers &> /dev/null

RETVAL=$?

[ $RETVAL -eq 0 ] || [ $retry -ge "$RETRIES" ] && break

sleep $[10 * (1 << $retry)]

retry=$[$retry + 1]

done


[ $RETVAL -eq 0 ] && success || failure

echo

if [ $RETVAL -eq 0 ]; then

   touch $lockfile

   [ "$SYNC_HWCLOCK" = "yes" ] && \

action $"Syncing hardware clock to system time" \

   /sbin/hwclock --systohc

fi

return $RETVAL

}


status() {

[ -f $lockfile ] || return 3

}


stop() {

[ "$EUID" != "0" ] && exit 4

rm -f $lockfile

}


# See how we were called.

case "$1" in

  start)

start

;;

  stop)

stop

;;

  status)

status

;;

  restart|force-reload)

stop

start

;;

  *)

echo $"Usage: $0 {start|stop|status|restart|force-reload}"

exit 2

esac


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章