I am banging my head against the wall here trying to figure this out. I have an automated DNS propagation system I am trying to build internally, and everything works except rndc flushname. If I do this at a shell prompt
$ sudo rndc flushname /var/lib/bind/$domain.hosts
$ sudo rndc reload
This works
Also if I create the following bash script:
#!/bin/bash
domain="some-domain.com"
# Do stuff
rndc flushname /var/lib/bind/$domain.hosts
rndc reload
And run it
$ sudo bash myScript.sh
It works.
This command is not working if I assign the script to a cron job though IE
$ sudo crontab -e
....
....
/5 * * * bash /etc/bind/dnsCron/dnsCron.sh
Why does rndc work from straight shell. It also works manually called in a bash script. But when called from crontab it doesn't reload? All commands are run through sudo and the crontab is also running under root. I am not sure what the issue is here? Is there another method to call rndc flushname ?