Centos

centos6/rhel上的ptp時間同步

  • April 22, 2015

我需要使用 PTP(精確時間協議)設置時間同步。我會得到伺服器地址。我找到了 ptpd server (version 2.1)。我在 /etc/init.d 中創建了啟動文件。但是想知道除了在哪個界面上顯示我應該收聽我應該使用的廣播之外還有哪些選項。有沒有人有設置這個的經驗?

以下是我已經完成的步驟,並讓 ptp 作為奴隸工作。我在 Centos 6.0 上使用過 ptpd2,但應該可以在任何地方使用。我在網上某處找到的啟動腳本 - 今天再也找不到那個連結了。

從 sourceforge下載ptpd2 源包

下載後編譯:

tar xzfv ptpd-2.1.0.tar.gz
cd ptpd-2.1.0/src
make
sudo cp ptpd2 /usr/bin/ptpd2

為 ptpd2 創建啟動腳本/etc/rc.d/init.d/ptpd2

#!/bin/sh
#
# ptpd Precision Time Protocol daemon
#
# chkconfig:   - 30 70
# description: ptpd implements a sub ms time coordination of LAN connected computers \
#              implementing IEEE 1588

# Source function library.
. /etc/rc.d/init.d/functions

exec="/usr/bin/ptpd2"
prog="ptpd2"

[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

lockfile=/var/lock/subsys/$prog

start() {
   [ -x $exec ] || exit 5
   echo -n $"Starting $prog: "
   # if not running, start it up here, usually something like "daemon $exec"
   daemon --user root $exec $PTPDARGS
   retval=$?
   echo
   [ $retval -eq 0 ] && touch $lockfile
   return $retval
}

stop() {
   echo -n $"Stopping $prog: "
   # stop it here, often "killproc $prog"
   killproc $prog
   retval=$?
   echo
   [ $retval -eq 0 ] && rm -f $lockfile
   return $retval
}

restart() {
   stop
   start
}

reload() {
   restart
}

force_reload() {
   restart
}

rh_status() {
   # run checks to determine if the service is running or use generic status
   status $prog
}

rh_status_q() {
   rh_status >/dev/null 2>&1
}


case "$1" in
   start)
       rh_status_q && exit 0
       $1
       ;;
   stop)
       rh_status_q || exit 0
       $1
       ;;
   restart)
       $1
       ;;
   reload)
       rh_status_q || exit 7
       $1
       ;;
   force-reload)
       force_reload
       ;;
   status)
       rh_status
       ;;
   condrestart|try-restart)
       rh_status_q || exit 0
       restart
       ;;
   *)
       echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
       exit 2
esac
exit $?

在以下位置創建配置文件/etc/sysconfig/ptpd2

#
# PTPD Configuration
#

PTPDARGS="-D -b eth2 -f /var/log/ptpd.log"

添加要在系統啟動時啟動的 ptpd:

/sbin/chkconfig --level 35 ptpd2 on

並啟動 ptpd 守護程序:service start ptpd2

享受。

如果您有更好的解決方案,請告訴我。

引用自:https://serverfault.com/questions/329127