我有这样的脚本
CHARSET=ASCII dig domain.com AXFR > domain.com.zone
if [ "$?" = "0" ]; then
echo "OK"
else
echo "Something went wrong"
fi
但是,我看到文件不完整,末尾有一行
;; communications error: end of file
我的脚本中是否存在错误或者我如何才能“捕获”这个错误?
答案1
dig 命令的退出状态($?)
并不反映区域传输是否成功。
我们可以检查输出文件中的错误消息,如下所示:
CHARSET=ASCII dig domain.com AXFR > domain.com.zone
if grep -q "communications error: end of file" domain.com.zone; then
echo "Something went wrong"
else
echo "OK"
gzip -9 domain.com.zone
fi