¸õ¨ìºô­¶¤º¤å°Ï¡C

:::

vsntp

»¡©ú

vsntp ¬O SNTP «È¤áºÝªA°Èµ{¦¡¡A±M¬°®É¶¡¤£¥¿±`ªº¨t²Î³]­p¡C vsntp ªº·N«ä¬O SNTP for Virtual PC ¡A­ì¥ý¬O§Ú¬°¤F¦b Connectix Virtual PC ¤W¶] GNU/Linux ¨t²Î¦Ó¼g¡C vsntp ¨Ì RFC 1769 SNTP ¼Ð·Ç¡A³s½u¨ì NTP ¦øªA¾¹¤Wªº UDP °ð 123 ¥H®Õ®É¡C

­Y¨S¦³¸Ë Virtual PC Additions ¡A Virtual PC ªº®É¶¡«Ü¶Ã¡C Virtual PC ªº RTC ¡] Real Time Clock ¡A©ÎºÙ CMOS ®ÉÄÁ¡BµwÅé®ÉÄÁ¡^¬O¥Î³nÅé¼ÒÀÀ¥X¨Óªº¡A©¹©¹®Ú¥»¨S¦³¦b¶]¡C GNU/Linux ®Ö¤ß«j±jºû«ù¤@­Ó¤j·§ªº®É¶¡¡C¥¿±`±¡ªp¤U¡A¥­§¡¤@¤ÀÄÁ·|§Ö¥|¬í¡A¤@¤Ñ§Ö¤@­Ó¥b¤p®É¡C³o¹ê¦b¬O¤Ó¸Ø±i¤F¡A¥Î²´·ú³£¤À¿ë±o¥X®ÉÄÁ³t«×¦³°ÝÃD¡C

David L. Mills ªº ntp ®Õ®É¦øªA¾¹¦b¦¹§¹¥þ¥¢ÆF¡C ntp ¥ý´ú¥X¨t²Î®É¶¡³t«×°¾²¾¡A¥Î adjtimex() ¨Ó½Õ¾ã¨t²Î®ÉÄÁ³t«×¡A¥Î³o­Ó¤èªkº¥ªñ¦¡½Õ¾ã¡A¨t²Î¥»¨­©M¬ÛÃöÀ³¥Îµ{¦¡¤ñ¸û¤£·|¥X°ÝÃD¡C³o­Ó¤èªk¦³¤@­Ó«e´£¡G®É¶¡³t«×¥»¨­«í©w¤£ÅÜ¡C¥i¬O Virtual PC ¤£Á¿³o¤@®M¡C Virtual PC ªº®É¶¡¯Âºé¬O³nÅé¼ÒÀÀ¥X¨Óªº¡A¨ü¥D¹q¸£­t²ü»P¨ä¥¦¦]¯À¼vÅT¡A®É§Ö®ÉºC¡C¨S¦³©T©wªº®É¶¡³t«×¡A¤]´N¨S¦³®É¶¡³t«×°¾²¾­È¡C«ç»ò´ú³£¬OªPµM¡C

David L. Mills ªº ntp µ{¦¡ùØ¡Aªþ¤F¤@­Ó sntp «È¤áºÝµ{¦¡¡A¥i¥H©ñ¦b crontab ùØ©w´Á¹ï®É¡A¹ï®É§¹µ²§ôµ{¦¡¡C°ÝÃD¬O¡A crontab ³Ì¤p³æ¦ì¬°¤À¡A³»¦h¤@¤ÀÄÁ¶]¤@¦¸¡A¥i¬O Virtual PC ªº®É¶¡¤@¤ÀÄÁ§Ö¥|¬í¡C¤@¤ÀÄÁ°h¦^¥|¬í¡A¤j¦h¼ÆÀ³¥Îµ{¦¡³£¨ü¤£¤F¡C¤@¤ÀÄÁ¶]¤@¦¸¡A¹ï¨t²Îªº­t²ü¤]«Ü¤j¡C

vsntp ¬O¬°¦¹¦Ó¼gªº¡C¥¦¥H daemon ¨Ó°õ¦æ¡A¥H§K¨C¦¸¹ï®É³£¹ï¨t²Î³y¦¨ÄY­«­t²ü¡C¥¦¥Î settimeofday() ¨Ó½Õ¾ã®É¶¡¡A®Õ®ÉÀW²v¥i¥ô·N³]©w¡A¾¨¥i¯à§â¨t²Î®ÉÄÁ»~®t¡Aºû«ù¦b¤@¬í¥H¤º¡C

vsntp ªº°µªk¦³¤U¦C¯Ê³´¡GÀWÁc®Õ®É®É¡Aºô¸ô¬y¶q«Ü¤j¡AÀW¼eªº­t²ü¤£¤p¡A¹ï¹ï¤è NTP ¦øªA¾¹¤]·|³y¦¨«Ü¤jªº­t¾á¡C©p³Ì¦n¦Û¤v¦b°Ïºô¤º¡A¬[¤@¥x¦Û¤vªº NTP ¦øªA¾¹¡C¦P®É¦] settimeofday() ±j¨î®É¶¡³]©w¤ÓÀWÁc¤F¡A¨t²Îªº°ªºë«×­p®É¥\¯à·|¥X°ÝÃD¡C

vsntp ¥Î sleep() ©I¥s¨Ó©w®É®Õ®É¡C¦b¬Y¨Ç¨t²Î¤W sleep() ¥i¯à¤£¤j¥¿±`¡C­Y vsntp ®Õ®É¤@¬q®É¶¡«á´N¤£°Ê¤F¡A¨t²Î¤Wªº sleep() ©I¥s¤£¥¿±`®É¡A¥i¥H§ï¥Î -a ¿ï¶µ´«¦¨ alarm() ­p®É¾¹¸Õ¬Ý¬Ý¡C

­Y¸I¨ì¥ô¦ó°ÝÃD¡A½Ð°Ñ¾\©p¨t²Îªº¤Wªº syslog °O¿ý¡C vsntp §â¸Ô²Ó°»¿ù°T®§¡A³£¥H LOG_DEBUG ¼h¦¸¡A LOG_DAEMON Ãþ§O°O¿ý¨ì syslog ¤¤¡C©p¥i¥H¦b /etc/syslog.conf ¤¤¥[¤W³o¤@¦æ¡A¼g¤J°»¿ù°T®§¡G

daemon.debug  /var/log/debug

¨Ã¬d¾\ /var/log/debug ¤¤ªº°»¿ù°T®§¡C°O±o¦b°»¿ùµ²§ô«áÃö³¬¡C°»¿ù°T®§¬y¶q«Ü¤j¡A«Ü§Ö´N·|¶ëÃzµwºÐ¡C´Nºâ¨S¶ëÃz¡A¤j¶q¸ê®Æ¼g¤JµwºÐ¡A¹ï¨t²Î®Ä¯àªº¼vÅT¤]«Ü¤j¡C

vsntp ­ì¬O¬° GNU/Linux ¨t²Î¤W°õ¦æ¦Ó¼g¡C vsntp ¥Îªº³£¬O POSIX ¬Û®eªº¨t²Î©I¥s¡A¦b POSIX ¬Û®e¨t²Î¤WÀ³¸Ó³£¥i¥H°õ¦æ¡C¤£¹L¥Ø«e¬°¤î§Ú¥u¦³ Cygwin ¡A¥u¦b Cygwin ¤W´ú¸Õ¹L¡C Cygwin ¤W¥i¥H°õ¦æ¡C­Y©p¥i¥H¦¨¥\¦b¨ä¥¦¨t²Î¤W°õ¦æ¡A½Ð¨Ó«H§iª¾¡C­Y»Ý­n¥ô¦ó­ì©lµ{¦¡ªº­×¥¿¡A¥ç½Ð¤@¨Öªþµ¹§Ú¡C

­Y©p¥i¥H¦b¨ä¥¦µêÀÀ¾÷¾¹¤W°õ¦æ vsntp ¡A¨Ò¦p VMWare ¡A½Ð¨Ó«H§iª¾¡C

°ò¥»¤W¡A­Y©p¦b¥Î vsntp ¡A½Ð¤@©w­n¨Ó«H§i¶D§Ú¡C§Ú«Ü·Qª¾¹D vsntp ¬O¤£¬O¯uªº¦³¤H¦b¥Î¡A¹ï¥@¬É©M¥­¦³À°§U *^_^* ©Î¥u¬O¦Û¤v¼g¦nª±ªº¦Ó¤w¡C :p

vsntp ¬O§Ú¼gªº²Ä¤@­Ó daemon ¡A§Ú¼gªº²Ä¤@­Ó socket µ{¦¡¡A¤]¬O§Ú²Ä¤@­Ó¤½¶}µo¦æªº C µ{¦¡¡C½Ð¦h¦h«ü±Ð¡ã ^_*'

¤U¸ü

vsntp ªº©x¤èºô¯¸¦b¡G

³Ì·sª© vsntp ¥i¥Ñ¤U¦C¦ì§}¤U¸ü¡G

¨Ìº¿¿ßªº PGP ¤½Æ_¦b¡G

½sĶ¤Î¦w¸Ë

vsntp ¨Ï¥Î¼Ð·Çªº GNU autoconf ªk½sͦw¸Ë¡G

  1. ¤U¸ü vsntp ¨Ã¸ÑÀ£ÁY¡G
    % tar xzf vsntp-x.x.x.tar.gz
    
  2. ¶i¤J vsntp ªº¤l¥Ø¿ý¡G
    % cd vsntp-x.x.x
    
  3. °õ¦æ ./configure ³]©w¡G
    % ./configure
    
  4. ¥H make ½sĶ¡G
    % make
    
    ½sĶ¥X¨ÓªºÀɮ׬° vsntp ¡C
  5. ­n¦w¸Ëµ{¦¡¡A©p¥i¯à­n¥ý su ¨ì root ¡A¥Î root ªºÅv­­¦w¸Ë¡G
    % su
    Password:
    #
    
  6. ±N vsntp Àɽƻs¨ì¾A·íªº¥Ø¿ý§Y¥i¡G
    # cp vsntp /usr/local/sbin
    
    ©ÎªÌ¡A©p¤]¥i¥H¥Î¦Û°Ê¦w¸Ë¡G
    # make install
    
    ©p¥i¥HÃä¸ËÃä²M±¼ÀÉ®×ùتº°£¿ù²Å¸¹¡A¦w¸Ë°_¨ÓÀɮפñ¸û¤p¡G
    # make install-strip
    
    ¥Î¤W­z¤è¦¡¦w¸Ë®É¡A vsntp ¹w³]¦w¸Ë¥Ø¿ý¦b /usr/local/sbin ¡C

±Ò°Ê¤Î°±¤î

­n¦³ root Åv­­¤~¯à°õ¦æ vsntp ¡C vsntp ¥Î settimeofday() ¹ï®É¡A¨S¦³ root Åv­­¤£¯à°õ¦æ settimeofday() ¡C

­n±Ò°Ê vsntp ¡A¥[¤W¹ï®É¥Îªº NTP server §Y¥i¡G

# vsntp my.ntp.server.com

vsntp ·|§â PID ¦s¦b /var/run/vsntp.pid ¡C­nµ²§ôµ{¦¡¡A¥u­n kill ¥¦ªº PID §Y¥i¡G

# kill `cat /var/run/vsntp.pid`

©p¥i¥H¥Î -p ¿ï¶µ¡A§ó§ï PID Àɪº¦ì¸m¡C

©R¥O¦C°Ñ¼Æ

vsntp [-i ¬í¼Æ] [-p ÀÉ®×] [-s|-a] ¦øªA¾¹
vsntp [-h|-v]
server
­n¹ï®É¥Îªº NTP ¦øªA¾¹¡C
-i,--interval ¬í¼Æ
¨C¹j´X¬í¹ï®É¤@¦¸¡C¹w³]¬° 900 ¬í¡] 15 ¤ÀÄÁ¡^¡C
-p,--pidfile ÀÉ®×
PID Àɦs©ñ¦ì¸m¡C¹w³]¬° /var/run/vsntp.pid ¡C
-s, --sleep
¥Î sleep() ©I¥s¨Ó©w®É®Õ®É¡A¬°¥Ø«e¹w³]­È¡C
-a, --alarm
¥Î alarm() ©I¥s¨Ó©w®É®Õ®É¡C
-h, --help
Åã¥Üµ{¦¡»¡©ú¡C
-v, --version
Åã¥Üµ{¦¡ª©¥»¡C

¿ù»~¦^³ø

vsntp ºô¯¸¬[¦b SourceForge »P ®ÈªÙ¨Ìº¿¡C¯Á¨ú³Ì·s¸ê°T¡A½Ð¾rÁ{¡G

¦b SourceForge ¤W¦³¤@­Ó vsntp ªº¶l¥ó³q°T ¡C¨Ï¥Î¤Wªº°ÝÃD¡B«ØÄ³©Î¿ù»~¦^³ø¡A½Ð´£¨ì³q°T¤W°Q½×¡C¥¦¬O Mailman ªº¶l¥ó³q°T¡C­Y­n¥[¤J¡A½Ð¨ì vsntp ¶l¥ó³q°Tªººô­¶ ¡C©p¤]¥i¥H¼g«H¨ì E-mail «ü¥O«H½c¡A¼ÐÃD¶ñ¤W help ¡A¯Á¨ú E-mail «ü¥O»¡©ú¡C

°Ñ¦Ò¸ê®Æ

§@ªÌ

¨Ìº¿¿ß¡C

ª©ÅvÁn©ú

ª©Åv©Ò¦³ © 2003-2007 ¨Ìº¿¿ß¡C

¥»µ{¦¡¬O¦Û¥Ñ³nÅé¡A±z¥i¥H¿í·Ó¦Û¥Ñ³nÅé°òª÷·| (Free Software Foundation) ¥Xª©ªº GNU ³q¥Î¤½¦@³\¥iÃÒ±ø´Ú(GNU General Public License) ²Ä¤Gª©¨Ó­×§ï©M­«·sµo§G³o¤@µ{¦¡¡A©ÎªÌ¦Û¥Ñ¿ï¾Ü¨Ï¥Î¥ô¦ó§ó·sªºª©¥»¡C

µo§G³o¤@µ{¦¡ªº¥Øªº¬O§Æ±æ¥¦¦³¥Î¡A¦ý¨S¦³¥ô¦ó¾á«O¡C¬Æ¦Ü¨S¦³¾A¦X¯S©w¥Øªº¦ÓÁô§tªº¾á«O¡C§ó¸Ô²Óªº±¡ªp½Ð°Ñ¾\ GNU ³q¥Î¤½¦@³\¥iÃÒ¡C

±zÀ³¸Ó¤w¸g©Mµ{¦¡¤@°_¦¬¨ì¤@¥÷ GNU ³q¥Î¤½¦@³\¥iÃÒªº°Æ¥»¡C¦pªGÁÙ¨S¦³¡A¼g«Hµ¹¡G Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA ¡C