|
@@ -1013,26 +1013,80 @@ If you get errors during the /configure/ stage then you may need to reboot so th
|
1013
|
1013
|
editor /usr/bin/updatedate
|
1014
|
1014
|
#+END_SRC
|
1015
|
1015
|
|
1016
|
|
-Add the following:
|
|
1016
|
+Add the following, changing /username@mydomainname.com/ to your email address:
|
1017
|
1017
|
|
1018
|
1018
|
#+BEGIN_SRC: bash
|
1019
|
1019
|
#!/bin/bash
|
1020
|
1020
|
|
1021
|
1021
|
TIMESOURCE=google.com
|
|
1022
|
+TIMESOURCE2=www.ptb.de
|
1022
|
1023
|
LOGFILE=/var/log/tlsdate.log
|
|
1024
|
+TIMEOUT=5
|
|
1025
|
+EMAIL=username@mydomainname.com
|
|
1026
|
+
|
|
1027
|
+# File which contains the previous date as a number
|
|
1028
|
+BEFORE_DATE_FILE=/var/log/tlsdateprevious.txt
|
|
1029
|
+
|
|
1030
|
+# File which contains the previous date as a string
|
|
1031
|
+BEFORE_FULLDATE_FILE=/var/log/tlsdate.txt
|
|
1032
|
+
|
1023
|
1033
|
DATE_BEFORE=$(date)
|
1024
|
|
-YEAR_BEFORE=$(echo $DATE_BEFORE | awk -F ' ' '{print $6}')
|
1025
|
|
-/usr/bin/timeout 3 tlsdate -l -t -H $TIMESOURCE -p 443
|
|
1034
|
+BEFORE=$(date -d "$Y-$M-$D" '+%s')
|
|
1035
|
+
|
|
1036
|
+# If the date was previously set
|
|
1037
|
+if [[ -f "$BEFORE_DATE_FILE" ]]; then
|
|
1038
|
+ BEFORE_FILE=$(cat $BEFORE_DATE_FILE)
|
|
1039
|
+ BEFORE_FULLDATE=$(cat $BEFORE_FULLDATE_FILE)
|
|
1040
|
+
|
|
1041
|
+ # is the date going backwards?
|
|
1042
|
+ if (( BEFORE_FILE > BEFORE )); then
|
|
1043
|
+ echo -n "Date went backwards between tlsdate updates. " \
|
|
1044
|
+ >> $LOGFILE
|
|
1045
|
+ echo -n "$BEFORE_FILE > $BEFORE, " >> $LOGFILE
|
|
1046
|
+ echo "$BEFORE_FULLDATE > $DATE_BEFORE" >> $LOGFILE
|
|
1047
|
+
|
|
1048
|
+ # Send a warning email
|
|
1049
|
+ echo $(tail $LOGFILE -n 2) | mail -s "tlsdate anomaly" $EMAIL
|
|
1050
|
+
|
|
1051
|
+ # Try another time source
|
|
1052
|
+ TIMESOURCE=$TIMESOURCE2
|
|
1053
|
+ fi
|
|
1054
|
+fi
|
|
1055
|
+
|
|
1056
|
+# Set the date
|
|
1057
|
+/usr/bin/timeout $TIMEOUT tlsdate -l -t -H $TIMESOURCE -p 443 >> $LOGFILE
|
|
1058
|
+
|
1026
|
1059
|
DATE_AFTER=$(date)
|
1027
|
|
-YEAR_AFTER=$(echo $DATE_AFTER | awk -F ' ' '{print $6}')
|
1028
|
|
-if [ "$YEAR_AFTER" -lt "$YEAR_BEFORE" ]; then
|
|
1060
|
+AFTER=$(date -d "$Y-$M-$D" '+%s')
|
|
1061
|
+
|
|
1062
|
+# After setting the date did it go backwards?
|
|
1063
|
+if (( AFTER < BEFORE )); then
|
1029
|
1064
|
echo "Incorrect date: $DATE_BEFORE -> $DATE_AFTER" >> $LOGFILE
|
1030
|
|
- date -s "DATE_BEFORE"
|
|
1065
|
+
|
|
1066
|
+ # Send a warning email
|
|
1067
|
+ echo $(tail $LOGFILE -n 2) | mail -s "tlsdate anomaly" $EMAIL
|
|
1068
|
+
|
|
1069
|
+ # Try resetting the date from another time source
|
|
1070
|
+ /usr/bin/timeout $TIMEOUT tlsdate -l -t -H $TIMESOURCE2 -p 443 >> $LOGFILE
|
|
1071
|
+ DATE_AFTER=$(date)
|
|
1072
|
+ AFTER=$(date -d "$Y-$M-$D" '+%s')
|
1031
|
1073
|
else
|
1032
|
1074
|
echo -n $TIMESOURCE >> $LOGFILE
|
|
1075
|
+ if [[ -f "$BEFORE_DATE_FILE" ]]; then
|
|
1076
|
+ echo -n " " >> $LOGFILE
|
|
1077
|
+ echo -n $BEFORE_FILE >> $LOGFILE
|
|
1078
|
+ fi
|
|
1079
|
+ echo -n " " >> $LOGFILE
|
|
1080
|
+ echo -n $BEFORE >> $LOGFILE
|
|
1081
|
+ echo -n " " >> $LOGFILE
|
|
1082
|
+ echo -n $AFTER >> $LOGFILE
|
1033
|
1083
|
echo -n " " >> $LOGFILE
|
1034
|
1084
|
echo $DATE_AFTER >> $LOGFILE
|
1035
|
1085
|
fi
|
|
1086
|
+
|
|
1087
|
+# Log the last date
|
|
1088
|
+echo "$AFTER" > $BEFORE_DATE_FILE
|
|
1089
|
+echo "$DATE_AFTER" > $BEFORE_FULLDATE_FILE
|
1036
|
1090
|
#+END_SRC
|
1037
|
1091
|
|
1038
|
1092
|
Save and exit.
|