使用 bash 删除 CSF 'do not delete' IP 条目
Remove CSF 'do not delete' IP entries with bash
有没有办法删除附加注释 # do not delete
的 CSF IP(自动使用 bash)?例如下面的列表:
1.1.1.1 # do not delete
1.2.3.4 # This is another IP # do not delete
1.2.3.5 # This IP is bad # do not delete
如果我像这样使用 CSF 删除 IP 1.1.1.1
:
csf -dr 1.1.1.1
我会得到这个错误:
csf: 1.1.1.1 set as "do not delete" - not removed
当然,我可以通过编辑 csf.deny 并手动删除注释行 # do not delete
来完美删除此 IP,然后当我 运行 csf -d 1.1.1.1
时,它将被删除。
CSF 是否有此选项来强制删除此条目,或者是否有其他方法可以通过 bash 脚本自动执行此操作?有数百个条目具有此 # do not delete
。所以,这不容易手动完成。
不使用csf -dr
也可以使用grep命令:
#!/bin/bash
# Find IP:
ip="1.1.1.1"
search_csf_ip_without_comment=$(grep -w "^${ip}" "/etc/csf/csf.deny")
# If IP found:
if [[ -n "${search_csf_ip_without_comment}" ]]; then
echo "IP found, remove and restarting csf ..."
grep -wv "^${ip}" "/etc/csf/csf.deny" >write.tmp && mv write.tmp "/etc/csf/csf.deny"
csf -r > /dev/null
else
echo "IP not found"
fi
有没有办法删除附加注释 # do not delete
的 CSF IP(自动使用 bash)?例如下面的列表:
1.1.1.1 # do not delete
1.2.3.4 # This is another IP # do not delete
1.2.3.5 # This IP is bad # do not delete
如果我像这样使用 CSF 删除 IP 1.1.1.1
:
csf -dr 1.1.1.1
我会得到这个错误:
csf: 1.1.1.1 set as "do not delete" - not removed
当然,我可以通过编辑 csf.deny 并手动删除注释行 # do not delete
来完美删除此 IP,然后当我 运行 csf -d 1.1.1.1
时,它将被删除。
CSF 是否有此选项来强制删除此条目,或者是否有其他方法可以通过 bash 脚本自动执行此操作?有数百个条目具有此 # do not delete
。所以,这不容易手动完成。
不使用csf -dr
也可以使用grep命令:
#!/bin/bash
# Find IP:
ip="1.1.1.1"
search_csf_ip_without_comment=$(grep -w "^${ip}" "/etc/csf/csf.deny")
# If IP found:
if [[ -n "${search_csf_ip_without_comment}" ]]; then
echo "IP found, remove and restarting csf ..."
grep -wv "^${ip}" "/etc/csf/csf.deny" >write.tmp && mv write.tmp "/etc/csf/csf.deny"
csf -r > /dev/null
else
echo "IP not found"
fi