mirror of
https://github.com/brunofontes/linuxShortcuts.git
synced 2024-11-23 22:30:51 +00:00
Adding script to check DNS on laptop
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.
This commit is contained in:
parent
ab9a092193
commit
6c66d88068
37
Services/fixDNS.sh
Executable file
37
Services/fixDNS.sh
Executable file
@ -0,0 +1,37 @@
|
||||
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"
|
11
Services/testDNS.service
Normal file
11
Services/testDNS.service
Normal file
@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Test and fix DNS update with wrong time
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart = /bin/bash /home/bruno/Apps/linuxShortcuts/Services/fixDNS.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Loading…
Reference in New Issue
Block a user