Sie sind hier Home » Linux » Shell Skripte » Lokale Zeit mit Zeitserver synchronisieren

Lokale Zeit mit Zeitserver synchronisieren

Dieses Script synchronisiert die lokale Zeit mit einem Zeitserver

Folgende Programme werden benötigt:

  • ntpdate
  • hwclock
  • awk
  • evtl sudo um das Skript unter einem anderen Benutzernamen auszuführen.

Aufruf erfolgt über /etc/network/if-up.d oder über Cron:

 
#!/bin/bash
#################################
# Zeitserver synchronisieren                            
#
# Author: R. Gemander (Libatech)          
# Web: http://www.libatech.biz                 
# License: GPL      
#################################
# Einstellungen
# Sollte fu-berlin nicht mehr erreichbar sein alternativ kann
# ntphost1.mb3.tu-chemnitz.de als Zeitserver genutzt werden 
ZEITSERVER="zeit.fu-berlin.de"
WAIT="3"
NTPDATE="ntpdate"
HWCLOCK="hwclock"
PING="ping"
AWK="awk"
SYSTEM=`uname -s`
VERSION="1.0"
 
info()
{
    echo "Dieses Script synchronisiert die lokale Uhrzeit mit dem  Zeitserver $ZEITSERVER"
    echo "Aufruf erfolgt über /etc/network/if-up.d oder über Cron "
    echo "Autor: LibaTech"
    echo "Vers.: $VERSION"
}
usage ()
{
    echo "
    FUNKTION
        Synchronisiert die lokale Zeit mit einem Zeitserver
    SYNTAX
        $0 [option]
    OPTIONEN
        -i --info   Infotext ausgeben
        -h --help   Zeigt diese Hilfe an
        -s --sync   Synchronisieren der Zeit
    "
}
check_uid()
{
    if [ ! `id -u` = "0" ]; then
    echo -e "\n Nur Root kann die Zeit synchronisieren! Exit!\n"
    exit 1
    fi
}
check_bins()
{
    for i in $NTPDATE $PING $AWK; do
    if ! type $i >/dev/null 2>&1 ; then
        echo -e "\n\t FEHLER: Das Programm $i wurde nicht gefunden."
        exit 1;
        fi
    done
}
time_sync()
{
    if ! $PING -c 2 -w $WAIT $ZEITSERVER >/dev/null 2>&1 ; then
    echo -e "\nFEHLER: Der Host $ZEITSERVER ist nicht erreichbar";
        echo -e "Zeitsynchronisation fehlgeschlagen.\n"
    exit 1
    else
    echo -e -n "\nZeitdifferenz in Sekunden: "
    $NTPDATE $ZEITSERVER | awk '{print $10}'
    if [ $SYSTEM = Linux ] ; then
        if ! type $HWCLOCK >/dev/null 2>&1 ; then
        echo -e "\n\tFEHLER: Das Programm $i wurde nicht gefunden!"
            exit 1
        fi
        $HWCLOCK --systohc
    fi
    echo -e "\nERFOLG: Die Zeit wurde mit Zeitserver ($ZEITSERVER) synchronisiert.\n"
    fi
}
 
case $1 in
    -h|--help)  usage   ; exit 0 ;;
    -i|--info)  info ; exit 0 ;;
    -s|--synch) check_uid ; check_bins ; time_sync ; exit ;;
    *)      usage ; exit 1 ;
esac
 
 

Es wurden noch keine Kommentare zu diesem Script hinterlegt

Einen Kommentar zu diesem Script hinterlassen

Name (optional):
E-Mail (optional):
Kommentar (erforderlich):

Kommentarschutz, bitte nicht aktivieren

Bookmark

Diese Beiträge könnten Sie auch interessieren