Message ID | 1539708282-23077-1-git-send-email-oscargomezf@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
Series | [1/1] ntp: added ntpdate support to the S49ntp script | expand |
Oscar, On Tue, Oct 16, 2018 at 11:45 AM Oscar Gomez Fuente <oscargomezf@gmail.com> wrote: > > Signed-off-by: Oscar Gomez Fuente <oscargomezf@gmail.com> > --- > package/ntp/S49ntp | 58 ++++++++++++++++++++++++++++++++---------------------- > 1 file changed, 34 insertions(+), 24 deletions(-) > > diff --git a/package/ntp/S49ntp b/package/ntp/S49ntp > index 35e5874..f5c4cb8 100755 > --- a/package/ntp/S49ntp > +++ b/package/ntp/S49ntp > @@ -1,34 +1,44 @@ > #! /bin/sh > > NAME=ntpd > +NTPDATE=/usr/bin/ntpdate > > # Read config file if it is present. > -if [ -r /etc/default/$NAME ] > -then > - . /etc/default/$NAME > +if [ -r /etc/default/$NAME ]; then > +. /etc/default/$NAME > fi > > -case "$1" in > - start) > - printf "Starting $NAME: " > - start-stop-daemon -S -q -x /usr/sbin/ntpd -- -g > - [ $? = 0 ] && echo "OK" || echo "FAIL" > - ;; > - stop) > - printf "Stopping $NAME: " > - start-stop-daemon -K -q -n $NAME > - [ $? = 0 ] && echo "OK" || echo "FAIL" > - ;; > - restart|reload) > - echo "Restarting $NAME: " > - $0 stop > - sleep 1 > - $0 start > - ;; > - *) > - echo "Usage: $0 {start|stop|restart|reload}" >&2 > - exit 1 > - ;; > +case $1 in > +start) > + printf "Starting $NAME: " > + if [ -f $NTPDATE ]; then > + NUM_SERVER=0 I'd suggest checking if there was a preferred time server you should use in /etc/default/$NAME before assuming using the pool. I don't believe there is a defined syntax for that config's variables as it is different from the actual ntp.conf. You can probably just assume a variable name like NTP_SERVER. > + CURRENT_DATE=$(date | grep "1970") > + while [ "$NUM_SERVER" != "4" -a "$CURRENT_DATE" != "" ] > + do > + $NTPDATE $NUM_SERVER.pool.ntp.org > /dev/null 2>&1 > + CURRENT_DATE=$(date | grep "1970") > + NUM_SERVER=$(( $NUM_SERVER + 1 )) > + done > + fi > + start-stop-daemon -S -q -x /usr/sbin/ntpd -- -g > + [ $? = 0 ] && echo "OK" || echo "FAIL" > + ;; > +stop) > + printf "Stopping $NAME: " > + start-stop-daemon -K -q -n $NAME > + [ $? = 0 ] && echo "OK" || echo "FAIL" > + ;; > +restart|reload) > + echo "Restarting $NAME: " > + $0 stop > + sleep 1 > + $0 start > + ;; > +*) > + echo "Usage: $0 {start|stop|restart|reload}" >&2 > + exit 1 > + ;; > esac > > exit 0 > -- > 1.9.1 >
Hi Matthew, > I'd suggest checking if there was a preferred time server you should > use in /etc/default/$NAME before assuming using the pool. I don't > believe there is a defined syntax for that config's variables as it is > different from the actual ntp.conf. You can probably just assume a > variable name like NTP_SERVER. Yes, it is a great idea. What do you think about that? -----> #! /bin/sh NAME=ntpd NTPDATE=/usr/bin/ntpdate MAX_NUM_SERVERS=3 NTP_NAME_SERVER=pool.ntp.org # Read config file if it is present. if [ -r /etc/default/$NAME ]; then . /etc/default/$NAME fi case $1 in start) printf "Starting $NAME: " if [ -f $NTPDATE ]; then CURRENT_DATE=$(date | grep "1970") if [ -r /etc/default/$NAME ]; then $NTPDATE $NTP_SERVER > /dev/null 2>&1 CURRENT_DATE=$(date | grep "1970") fi NUM_SERVER=0 while [ $NUM_SERVER -le $MAX_NUM_SERVERS -a "$CURRENT_DATE" != "" ] do $NTPDATE $NUM_SERVER.$NTP_NAME_SERVER > /dev/null 2>&1 NUM_SERVER=$(( $NUM_SERVER + 1 )) CURRENT_DATE=$(date | grep "1970") done fi start-stop-daemon -S -q -x /usr/sbin/ntpd -- -g [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping $NAME: " start-stop-daemon -K -q -n $NAME [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart|reload) echo "Restarting $NAME: " $0 stop sleep 1 $0 start ;; *) echo "Usage: $0 {start|stop|restart|reload}" >&2 exit 1 ;; esac exit 0 -----> Best regards. Oscar Gomez Fuente TST Sistemas www.tst-sistemas.es
Hi everyone, I made some improvements. If everyone thinks it is ok I will send a patch: -----> #! /bin/sh NAME=ntpd NTPDATE=/usr/bin/ntpdate MAX_NUM_SERVERS=3 NTP_NAME_SERVER=pool.ntp.org # Read config file if it is present. if [ -r /etc/default/$NAME ]; then . /etc/default/$NAME fi case $1 in start) printf "Starting $NAME: " CURRENT_DATE=$(date | grep "1970") if [ -f $NTPDATE -a "$CURRENT_DATE" != "" ]; then if [ "$NTP_SERVER" != "" ]; then $NTPDATE $NTP_SERVER > /dev/null 2>&1 CURRENT_DATE=$(date | grep "1970") fi NUM_SERVER=0 while [ $NUM_SERVER -le $MAX_NUM_SERVERS -a "$CURRENT_DATE" != "" ] do $NTPDATE $NUM_SERVER.$NTP_NAME_SERVER > /dev/null 2>&1 NUM_SERVER=$(( $NUM_SERVER + 1 )) CURRENT_DATE=$(date | grep "1970") done fi start-stop-daemon -S -q -x /usr/sbin/ntpd -- -g [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping $NAME: " start-stop-daemon -K -q -n $NAME [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart|reload) echo "Restarting $NAME: " $0 stop sleep 1 $0 start ;; *) echo "Usage: $0 {start|stop|restart|reload}" >&2 exit 1 ;; esac exit 0 -----> Best regards.
Oscar, On Wed, Oct 17, 2018 at 2:49 PM Oscar Gomez Fuente <oscargomezf@gmail.com> wrote: > > Hi everyone, > > I made some improvements. If everyone thinks it is ok I will send a patch: > -----> > #! /bin/sh > > NAME=ntpd > NTPDATE=/usr/bin/ntpdate Do you need to try more then one server? I'd suggest the following instead which handles the default NTP_SERVER without a conditional and removes the loop. NTP_SERVER=0.pool.ntp.org > > # Read config file if it is present. > if [ -r /etc/default/$NAME ]; then > . /etc/default/$NAME > fi > > case $1 in > start) > printf "Starting $NAME: " > CURRENT_DATE=$(date | grep "1970") > if [ -f $NTPDATE -a "$CURRENT_DATE" != "" ]; then $NTPDATE $NTP_SERVER > /dev/null 2>&1 [ $? = 1 ] && echo -n "(No initial time set)" > fi > start-stop-daemon -S -q -x /usr/sbin/ntpd -- -g > [ $? = 0 ] && echo "OK" || echo "FAIL" > ;; > stop) > printf "Stopping $NAME: " > start-stop-daemon -K -q -n $NAME > [ $? = 0 ] && echo "OK" || echo "FAIL" > ;; > restart|reload) > echo "Restarting $NAME: " > $0 stop > sleep 1 > $0 start > ;; > *) > echo "Usage: $0 {start|stop|restart|reload}" >&2 > exit 1 > ;; > esac > > exit 0 > > -----> > > Best regards.
diff --git a/package/ntp/S49ntp b/package/ntp/S49ntp index 35e5874..f5c4cb8 100755 --- a/package/ntp/S49ntp +++ b/package/ntp/S49ntp @@ -1,34 +1,44 @@ #! /bin/sh NAME=ntpd +NTPDATE=/usr/bin/ntpdate # Read config file if it is present. -if [ -r /etc/default/$NAME ] -then - . /etc/default/$NAME +if [ -r /etc/default/$NAME ]; then +. /etc/default/$NAME fi -case "$1" in - start) - printf "Starting $NAME: " - start-stop-daemon -S -q -x /usr/sbin/ntpd -- -g - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - stop) - printf "Stopping $NAME: " - start-stop-daemon -K -q -n $NAME - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - restart|reload) - echo "Restarting $NAME: " - $0 stop - sleep 1 - $0 start - ;; - *) - echo "Usage: $0 {start|stop|restart|reload}" >&2 - exit 1 - ;; +case $1 in +start) + printf "Starting $NAME: " + if [ -f $NTPDATE ]; then + NUM_SERVER=0 + CURRENT_DATE=$(date | grep "1970") + while [ "$NUM_SERVER" != "4" -a "$CURRENT_DATE" != "" ] + do + $NTPDATE $NUM_SERVER.pool.ntp.org > /dev/null 2>&1 + CURRENT_DATE=$(date | grep "1970") + NUM_SERVER=$(( $NUM_SERVER + 1 )) + done + fi + start-stop-daemon -S -q -x /usr/sbin/ntpd -- -g + [ $? = 0 ] && echo "OK" || echo "FAIL" + ;; +stop) + printf "Stopping $NAME: " + start-stop-daemon -K -q -n $NAME + [ $? = 0 ] && echo "OK" || echo "FAIL" + ;; +restart|reload) + echo "Restarting $NAME: " + $0 stop + sleep 1 + $0 start + ;; +*) + echo "Usage: $0 {start|stop|restart|reload}" >&2 + exit 1 + ;; esac exit 0
Signed-off-by: Oscar Gomez Fuente <oscargomezf@gmail.com> --- package/ntp/S49ntp | 58 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 24 deletions(-)