#!/bin/bash # Der Wakeup-Zeitpunkt im BIOS muss auf den 1. des Monats um 00:00:00 Uhr # eingestellt werden BiosWakeup="2004-05-31 23:59:59" # Aufwachzeit in Sekunden seit Epoch umrechnen Wakeup=`date -d "$1" +%s` if [ "$?" -eq "1" ]; then echo "No date or wrong date format." echo "Syntax:" echo " settime \"YYYY-MM-DD hh:mm:ss\"" exit 1 fi Now=`date +%s` Bios=`date -u -d "${BiosWakeup}" +%s` if [ "${Wakeup}" -lt "${Now}" ]; then echo "Wakup Time is in past." exit 1 fi # Zeitdifferenz zwischen Wakeup und aktueller Zeit in Sekunden ausrechnen Diff=$[${Wakeup}-${Now}] # Zeitdifferenz zwischen RTC und jetzt in Sekunden in Datei speichern echo "$[${Now}-${Bios}+${Diff}]" > /etc/timediff # Uhr zurück stellen date -u -s "${BiosWakeup} ${Diff} seconds ago" >/dev/null if [ "$?" -gt "0" ]; then echo "Can't change system date, not running as root?" exit 1 fi # CMOS-Uhr aktualisieren hwclock -w --utc