mirror of
https://github.com/brunofontes/linuxShortcuts.git
synced 2024-11-24 02:01:08 +00:00
Bruno Fontes
6c66d88068
Laptop battery is not working, so when the clock is wrong, my DNS server does not works (because of DNSSEC) and it makes the clock to not be able to update properly. So this script changes the DNS to Quad9 and forces update the clock time before changing it back to my DNS server.
38 lines
1.4 KiB
Bash
Executable File
38 lines
1.4 KiB
Bash
Executable File
function isDNSWorking() {
|
|
dnsWorking=$(dig brunofontes.net | grep "ANSWER: 0")
|
|
}
|
|
logfile="/var/log/bfontes"
|
|
|
|
sudo echo "$(date +"%Y-%m-%d %H:%M:%S") - Checking if DNS is working" >> "$logfile"
|
|
isDNSWorking
|
|
|
|
if [ "$dnsWorking" ]; then
|
|
sudo echo "$(date +"%Y-%m-%d %H:%M:%S") - DNS not working, hour may be wrong. Trying to fix..." >> "$logfile"
|
|
sudo chattr -i /etc/resolv.conf
|
|
sudo sed -i 's/127.0.0.2/9.9.9.9/' /etc/resolv.conf 2>>"$logfile"
|
|
sudo chattr +i /etc/resolv.conf
|
|
|
|
sudo echo "$(date +"%Y-%m-%d %H:%M:%S") - Forcing time to sync" >> "$logfile"
|
|
sudo chronyc online 2>"$logfile"
|
|
sudo chronyc -a 'burst 4/4'
|
|
i=0
|
|
while [ "$dnsWorking" -a $i -le 4 ]; do
|
|
sudo echo "$(date +"%Y-%m-%d %H:%M:%S") - Waiting..." >> "$logfile"
|
|
sleep 20
|
|
isDNSWorking
|
|
i=$(( "$i" + 1 ))
|
|
done
|
|
|
|
if [ -z "$dnsWorking" ]; then
|
|
sudo echo "$(date +"%Y-%m-%d %H:%M:%S") - FIXED!" >> "$logfile"
|
|
else
|
|
sudo echo "$(date +"%Y-%m-%d %H:%M:%S") - Script has failed..." >> "$logfile"
|
|
sudo echo "$(date +"%Y-%m-%d %H:%M:%S") - Fixing DNS script has failed. More details on $logfile" >> ~/.log_error
|
|
fi
|
|
sudo echo "$(date +"%Y-%m-%d %H:%M:%S") - Configuring DNS servers back." >> "$logfile"
|
|
sudo chattr -i /etc/resolv.conf
|
|
sudo sed -i 's/9.9.9.9/127.0.0.2/' /etc/resolv.conf
|
|
sudo chattr +i /etc/resolv.conf
|
|
fi
|
|
sudo echo "$(date +"%Y-%m-%d %H:%M:%S") - Done" >> "$logfile"
|