|
@@ -3584,115 +3584,23 @@ function time_synchronisation {
|
3584
|
3584
|
return
|
3585
|
3585
|
fi
|
3586
|
3586
|
|
3587
|
|
- # remove any previous version of tlsdate compiled from source
|
3588
|
|
- reinstall_tlsdate="no"
|
3589
|
|
- if [ -d $INSTALL_DIR/tlsdate ]; then
|
3590
|
|
- if [ -f /usr/bin/tlsdate ]; then
|
3591
|
|
- echo 'Removing previous tlsdate install'
|
3592
|
|
- rm -rf $INSTALL_DIR/tlsdate
|
3593
|
|
- rm -f /usr/bin/tlsdate
|
3594
|
|
- reinstall_tlsdate="yes"
|
3595
|
|
- echo 'Reinstalling tlsdate'
|
3596
|
|
- fi
|
|
3587
|
+ if [ -f /usr/local/bin/${PROJECT_NAME}-update-date ]; then
|
|
3588
|
+ cp /usr/local/bin/${PROJECT_NAME}-update-date /usr/bin/updatedate
|
|
3589
|
+ else
|
|
3590
|
+ cp /usr/bin/${PROJECT_NAME}-update-date /usr/bin/updatedate
|
3597
|
3591
|
fi
|
|
3592
|
+ chmod +x /usr/bin/updatedate
|
3598
|
3593
|
|
3599
|
3594
|
if grep -Fxq "time_synchronisation" $COMPLETION_FILE; then
|
3600
|
|
- if [[ $reinstall_tlsdate == "no" ]]; then
|
3601
|
|
- return
|
3602
|
|
- fi
|
|
3595
|
+ return
|
3603
|
3596
|
fi
|
3604
|
3597
|
|
3605
|
3598
|
apt-get -y install tlsdate
|
3606
|
3599
|
apt-get -y remove ntpdate
|
3607
|
3600
|
|
3608
|
|
- echo '#!/bin/bash' > /usr/bin/updatedate
|
3609
|
|
- echo "TIMESOURCE='${TLS_TIME_SOURCE1}'" >> /usr/bin/updatedate
|
3610
|
|
- echo "TIMESOURCE2='${TLS_TIME_SOURCE2}'" >> /usr/bin/updatedate
|
3611
|
|
- echo "COMPLETION_FILE=$COMPLETION_FILE" >> /usr/bin/updatedate
|
3612
|
|
- echo 'LOGFILE=/var/log/tlsdate.log' >> /usr/bin/updatedate
|
3613
|
|
- echo 'TIMEOUT=5' >> /usr/bin/updatedate
|
3614
|
|
- echo 'if grep -q "Admin user" $COMPLETION_FILE; then' >> /usr/bin/updatedate
|
3615
|
|
- echo -n ' ADMIN_USER=$(cat $COMPLETION_FILE | grep "Admin user" | ' >> /usr/bin/updatedate
|
3616
|
|
- echo -n "awk -F ':' '{print " >> /usr/bin/updatedate
|
3617
|
|
- echo -n '$2' >> /usr/bin/updatedate
|
3618
|
|
- echo "}')" >> /usr/bin/updatedate
|
3619
|
|
- echo ' EMAIL=$ADMIN_USER@$HOSTNAME' >> /usr/bin/updatedate
|
3620
|
|
- echo 'else' >> /usr/bin/updatedate
|
3621
|
|
- echo " EMAIL=$MY_EMAIL_ADDRESS" >> /usr/bin/updatedate
|
3622
|
|
- echo 'fi' >> /usr/bin/updatedate
|
3623
|
|
- echo '# File which contains the previous date as a number' >> /usr/bin/updatedate
|
3624
|
|
- echo 'BEFORE_DATE_FILE=/var/log/tlsdateprevious.txt' >> /usr/bin/updatedate
|
3625
|
|
- echo '# File which contains the previous date as a string' >> /usr/bin/updatedate
|
3626
|
|
- echo 'BEFORE_FULLDATE_FILE=/var/log/tlsdate.txt' >> /usr/bin/updatedate
|
3627
|
|
- echo 'DATE_BEFORE=$(date)' >> /usr/bin/updatedate
|
3628
|
|
- echo 'BEFORE=$(date "+%s")' >> /usr/bin/updatedate
|
3629
|
|
- echo 'BACKWARDS_BETWEEN=0' >> /usr/bin/updatedate
|
3630
|
|
- echo 're="^[0-9]+$"' >> /usr/bin/updatedate
|
3631
|
|
- echo '# If the date was previously set' >> /usr/bin/updatedate
|
3632
|
|
- echo 'if [ -s "$BEFORE_DATE_FILE" ]; then' >> /usr/bin/updatedate
|
3633
|
|
- echo ' filesize=$(wc -c "$BEFORE_DATE_FILE" | cut -f 1 -d " ")' >> /usr/bin/updatedate
|
3634
|
|
- echo ' if [ $filesize -ge 5 ]; then' >> /usr/bin/updatedate
|
3635
|
|
- echo ' BEFORE_FILE=$(cat $BEFORE_DATE_FILE)' >> /usr/bin/updatedate
|
3636
|
|
- echo ' if [[ $BEFORE_FILE =~ $re ]]; then' >> /usr/bin/updatedate
|
3637
|
|
- echo ' BEFORE_FULLDATE=$(cat $BEFORE_FULLDATE_FILE)' >> /usr/bin/updatedate
|
3638
|
|
- echo ' # is the date going backwards?' >> /usr/bin/updatedate
|
3639
|
|
- echo ' if (( $BEFORE_FILE > $BEFORE )); then' >> /usr/bin/updatedate
|
3640
|
|
- echo ' echo -n "Date went backwards between tlsdate updates. " >> $LOGFILE' >> /usr/bin/updatedate
|
3641
|
|
- echo ' echo -n "$BEFORE_FILE > $BEFORE, " >> $LOGFILE' >> /usr/bin/updatedate
|
3642
|
|
- echo ' echo "$BEFORE_FULLDATE > $DATE_BEFORE" >> $LOGFILE' >> /usr/bin/updatedate
|
3643
|
|
- echo ' # Send a warning email' >> /usr/bin/updatedate
|
3644
|
|
- echo ' echo $(tail $LOGFILE -n 2) | mail -s "tlsdate anomaly" $EMAIL' >> /usr/bin/updatedate
|
3645
|
|
- echo ' # Try another time source' >> /usr/bin/updatedate
|
3646
|
|
- echo ' TIMESOURCE=$TIMESOURCE2' >> /usr/bin/updatedate
|
3647
|
|
- echo ' # try running without any parameters' >> /usr/bin/updatedate
|
3648
|
|
- echo ' tlsdate >> $LOGFILE' >> /usr/bin/updatedate
|
3649
|
|
- echo ' BACKWARDS_BETWEEN=1' >> /usr/bin/updatedate
|
3650
|
|
- echo ' fi' >> /usr/bin/updatedate
|
3651
|
|
- echo ' fi' >> /usr/bin/updatedate
|
3652
|
|
- echo ' fi' >> /usr/bin/updatedate
|
3653
|
|
- echo 'fi' >> /usr/bin/updatedate
|
3654
|
|
- echo '# Set the date' >> /usr/bin/updatedate
|
3655
|
|
- echo '/usr/bin/timeout $TIMEOUT tlsdate -l -t -H $TIMESOURCE -p 443 >> $LOGFILE' >> /usr/bin/updatedate
|
3656
|
|
- echo 'DATE_AFTER=$(date)' >> /usr/bin/updatedate
|
3657
|
|
- echo 'AFTER=$(date "+%s")' >> /usr/bin/updatedate
|
3658
|
|
- echo '# After setting the date did it go backwards?' >> /usr/bin/updatedate
|
3659
|
|
- echo 'if (( $AFTER < $BEFORE )); then' >> /usr/bin/updatedate
|
3660
|
|
- echo ' echo "Incorrect date: $DATE_BEFORE -> $DATE_AFTER" >> $LOGFILE' >> /usr/bin/updatedate
|
3661
|
|
- echo ' # Send a warning email' >> /usr/bin/updatedate
|
3662
|
|
- echo ' echo $(tail $LOGFILE -n 2) | mail -s "tlsdate anomaly" $EMAIL' >> /usr/bin/updatedate
|
3663
|
|
- echo ' # Try resetting the date from another time source' >> /usr/bin/updatedate
|
3664
|
|
- echo ' /usr/bin/timeout $TIMEOUT tlsdate -l -t -H $TIMESOURCE2 -p 443 >> $LOGFILE' >> /usr/bin/updatedate
|
3665
|
|
- echo ' DATE_AFTER=$(date)' >> /usr/bin/updatedate
|
3666
|
|
- echo ' AFTER=$(date "+%s")' >> /usr/bin/updatedate
|
3667
|
|
- echo 'else' >> /usr/bin/updatedate
|
3668
|
|
- echo ' echo -n $TIMESOURCE >> $LOGFILE' >> /usr/bin/updatedate
|
3669
|
|
- echo ' if [ -s "$BEFORE_DATE_FILE" ]; then' >> /usr/bin/updatedate
|
3670
|
|
- echo ' echo -n " " >> $LOGFILE' >> /usr/bin/updatedate
|
3671
|
|
- echo ' echo -n $BEFORE_FILE >> $LOGFILE' >> /usr/bin/updatedate
|
3672
|
|
- echo ' fi' >> /usr/bin/updatedate
|
3673
|
|
- echo ' echo -n " " >> $LOGFILE' >> /usr/bin/updatedate
|
3674
|
|
- echo ' echo -n $BEFORE >> $LOGFILE' >> /usr/bin/updatedate
|
3675
|
|
- echo ' echo -n " " >> $LOGFILE' >> /usr/bin/updatedate
|
3676
|
|
- echo ' echo -n $AFTER >> $LOGFILE' >> /usr/bin/updatedate
|
3677
|
|
- echo ' echo -n " " >> $LOGFILE' >> /usr/bin/updatedate
|
3678
|
|
- echo ' echo $DATE_AFTER >> $LOGFILE' >> /usr/bin/updatedate
|
3679
|
|
- echo 'fi' >> /usr/bin/updatedate
|
3680
|
|
- echo '# Log the last date' >> /usr/bin/updatedate
|
3681
|
|
- echo 'if [[ $BACKWARDS_BETWEEN == 0 ]]; then' >> /usr/bin/updatedate
|
3682
|
|
- echo ' echo "$AFTER" > $BEFORE_DATE_FILE' >> /usr/bin/updatedate
|
3683
|
|
- echo ' echo "$DATE_AFTER" > $BEFORE_FULLDATE_FILE' >> /usr/bin/updatedate
|
3684
|
|
- echo ' exit 0' >> /usr/bin/updatedate
|
3685
|
|
- echo 'else' >> /usr/bin/updatedate
|
3686
|
|
- echo ' exit 1' >> /usr/bin/updatedate
|
3687
|
|
- echo 'fi' >> /usr/bin/updatedate
|
3688
|
|
- chmod +x /usr/bin/updatedate
|
3689
|
3601
|
echo '*/15 * * * * root /usr/bin/updatedate' >> /etc/crontab
|
3690
|
3602
|
service cron restart
|
3691
|
3603
|
|
3692
|
|
- if [[ $reinstall_tlsdate != "no" ]]; then
|
3693
|
|
- echo 'tlsdate was reinstalled'
|
3694
|
|
- fi
|
3695
|
|
-
|
3696
|
3604
|
echo 'time_synchronisation' >> $COMPLETION_FILE
|
3697
|
3605
|
}
|
3698
|
3606
|
|