在ntpd sync之后执行脚本

时间:2015-01-22 01:36:22

标签: linux raspberry-pi ntpd

我有覆盆子pi与raspbian。我想在与ntpd同步后立即执行脚本,我的脚本需要正确的日期时间。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

执行此操作的正确方法是使用ntp-waitntp-wait是为这种情况量身定做的。这是手册页:

ntp-wait(1)                     User Commands                    ntp-wait(1)

NAME
       ntp-wait - Wait for ntpd to stabilize the system clock

SYNOPSIS
       ntp-wait [-flag [value]]... [--opt-name [[=| ]value]]...

       All arguments must be options.

DESCRIPTION
       will  send  at  most  num-tries queries to sleeping for secs-between-
       tries after each status return that says has not yet produced a  syn‐
       chronized and stable system clock.

       will do this quietly, unless the v flag is provided.

OPTIONS
       -n num-tries, --=num-tries
              Number  of  times to check ntpd.  This option takes an integer
              number as its argument.  The default num-tries for this option
              is:
                   100

              The  maximum  number  of times we will check ntpd to see if it
              has been able to synchronize and stabilize the system clock.

       -s secs-between-tries, --=secs-between-tries
              How long to sleep between tries.  This option takes an integer
              number  as  its  argument.  The default secs-between-tries for
              this option is:
                   6

              We will sleep for @file{secs-between-tries} after  each  query
              of ntpd that returns "the time is not yet stable".

       -v, -- Be verbose.

              By  default,  ntp-wait  is silent.  With this option, ntp-wait
              will provide status information.

       -?, --help
              Display usage information and exit.

       -!, --more-help
              Pass the extended usage information through a pager.

       - [{v|c|n}], --version[={v|c|n}]
              Output version of program and exit.  The default mode is  `v',
              a  simple version.  The `c' mode will print copyright informa‐
              tion and `n' will print the full copyright notice.


EXIT STATUS
       One of the following exit values will be returned:

       0      Successful program execution.

       1      The operation failed or the command syntax was not valid.

答案 1 :(得分:1)

假设您的用户有权调用ntpdate(换句话说,谁可以调整系统的时间),您可以使用以下脚本,我在eample中使用ntp服务器&# 34; 0.ca.pool.ntp.org"

#!/bin/bash

NEEDS_SYNC=1
while [ "$NEEDS_SYNC" -ne "0" ]; do
    ntpdate -t 4     0.ca.pool.ntp.org
    NEEDS_SYNC=$?    # If this variable is set ot 0, time sync worked
    sleep 2
done

# RUN THE SCRIPT THT NEEDS ntp SYNC'D TIME HERE

请注意,您可能需要安装软件包' ntpdate'为了这个工作。