Dumping the cache is an asynchronous operation, so sleeping for a fixed
amount of time after running "rndc dumpdb" is imperfect as dumping cache
contents may take longer than expected on slower machines. Instead of
always sleeping for 1 second, wait until the "; Dump complete" line
appears in the dump or 10 seconds pass, whichever comes first.
dump_cache () {
$RNDC $RNDCOPTS dumpdb -cache _default
- sleep 1
+ for i in 0 1 2 3 4 5 6 7 8 9
+ do
+ grep '^; Dump complete$' ns2/named_dump.db > /dev/null && break
+ sleep 1
+ done
mv ns2/named_dump.db ns2/named_dump.db.$n
}