Lokale Zeit mit Zeitserver synchronisieren
Dieses Script synchronisiert die lokale Zeit mit einem Zeitserver 2>
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


