Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # ~/bin/cron_systemd_resolved from https://pastebin.com/JBfYVVtG
- # ...to pick either 10 random opennic nameservers, or all 13(usually) root nameservers
- # sudo crontab -e, a root cron script
- # Bob Dodds - cto at blockrippa dot com
- # https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=4UJD7RNRZNH7W
- # set 13 root servers--
- #
- # cron_systemd_resolved --root
- #
- # or just set random 10 working opennic servers--
- #
- # cron_systemd_resolved
- unset s str
- if [[ "$0 $*" =~ root ]]
- then s=(
- `for h in $( host -tns . |\
- sed -n -e '/root-servers.net/{s/\(^.*[\t ]\)\(.*\.net\)\(\.$\)/\2/p;}' )
- do host -ta $h | sed -n -e 's/\(^.*[\t ]\)\([.0-9]\+$\)/\2/p'
- done`
- )
- else
- s=(
- `wget -O- https://servers.opennic.org/ |\
- sed -n -e '/\(^.*>\)\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\(<.*>Pass<.*$\)/{
- s//\2/;
- H;
- }' \
- -e '${
- g;
- /./p;
- }' | shuf -n10`
- )
- fi
- str=${s[@]}
- if [ ${#s[@]} = 10 ]
- then sudo sed -i \
- -e 's/^#*Cache=.*/Cache=yes/' \
- -e '/^DNS=/d' \
- -e "\$s/.*/DNS=${str}\n/" \
- /etc/systemd/resolved.conf
- sudo systemctl restart systemd-resolved
- echo ${0##*/} opennic: ${s[@]} | logger --stderr
- elif [ ${#s[@]} -gt 10 ]
- then sudo sed -i \
- -e 's/^#*Cache=.*/Cache=yes/' \
- -e '/^DNS=/d' \
- -e "\$s/.*/DNS=${str}\n/" \
- /etc/systemd/resolved.conf
- sudo systemctl restart systemd-resolved
- echo ${0##*/} root: ${s[@]} | logger --stderr
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement