关闭Linux下的DNS缓存

目录

编写了一个脚本,运行后可以关闭Linux下基于nscd的DNS缓存。

#!/bin/bash

# 定义配置文件路径
NSCD_CONF="/etc/nscd.conf"

# 检查文件是否存在
if [ ! -f "$NSCD_CONF" ]; then
    echo "no file: $NSCD_CONF"
    exit 1
fi

# 备份原有配置文件
cp $NSCD_CONF{,.bak}

# 修改配置:将'enable-cache            hosts           yes'替换为'enable-cache            hosts           no'
sed -i '/enable-cache\s*hosts\s*yes/s/yes/no/' $NSCD_CONF

# 检查sed命令是否成功执行
if [ $? -ne 0 ]; then
    echo "Failed to edit /etc/nscd.conf, no su I guess"
    exit 1
fi

# 重启nscd服务
systemctl restart nscd

# 检查nscd服务状态
if systemctl status nscd | grep -q "active (running)"; then
    echo "Success"
else
    echo "restart nscd failed"
fi

如果要开启DNS缓存,只需要将备份文件/etc/nscd.conf.bak覆盖/etc/nscd.conf即可。

cp /etc/nscd.conf{.bak,}