]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
setclock: use last log access time if no rtc found.
authorArne Fitzenreiter <arne_f@ipfire.org>
Mon, 21 Jan 2013 16:53:36 +0000 (17:53 +0100)
committerArne Fitzenreiter <arne_f@ipfire.org>
Mon, 21 Jan 2013 16:53:36 +0000 (17:53 +0100)
This prevents time backjumps that destroy graphs and vnstat data.

src/initscripts/init.d/setclock

index 6083108dd7568040d9e3e6157741378f0f7b077d..86c161453bcf385ecbcbf312035f4fdee4099c46 100644 (file)
@@ -24,10 +24,21 @@ case ${1} in
 
                # udev not create the rtc symlink if rtc is in the kernel
                if [ ! -e /dev/rtc ]; then
-                       ln -s rtc0 /dev/rtc
+                       if [ -e /dev/rtc0 ]; then
+                               ln -s rtc0 /dev/rtc
+                       fi
                fi
 
                hwclock --hctosys ${CLOCKPARAMS} &>/dev/null
+               if [ ! ${?} == 0 ]; then
+                       if [ ! -z /var/log/messages ]; then
+                               boot_mesg -n "No RTC found, set time to last log accesstime ... "
+                               DATE=`stat --format "%y" /var/log/messages | cut -d" " -f1`
+                               TIME=`stat --format "%y" /var/log/messages | sed -e "s|\..*||g" | cut -d" " -f2`
+                               date -s $DATE > /dev/null
+                               date -s $TIME
+                       fi
+               fi
                evaluate_retval
                ;;