#bash #csf
Вопрос:
Есть ли способ удалить IP-адреса CSF (автоматически с помощью bash), к которым # do not delete
добавлен комментарий? Например, этот список ниже:
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
Если я удалю IP 1.1.1.1
-адрес с помощью CSF, как это:
csf -dr 1.1.1.1
Я получу эту ошибку:
csf: 1.1.1.1 set as "do not delete" - not removed
Конечно , я могу идеально удалить этот IP-адрес, отредактировав csf.deny и вручную удалив эту строку комментария # do not delete
, а затем, когда я запущу csf -d 1.1.1.1
ее, она будет удалена.
Есть ли у CSF возможность принудительно удалить эту запись или есть альтернативный способ сделать это автоматически с помощью скрипта bash? Есть более нескольких сотен записей, в которых есть это # do not delete
. Таким образом, это нелегко сделать вручную.
Комментарии:
1. Этого
-dr
не должно быть-d
. Смотрите мой ответ.
Ответ №1:
Вы можете использовать команду grep без использования csf -dr
:
#!/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 amp;amp; mv write.tmp "/etc/csf/csf.deny"
csf -r > /dev/null
else
echo "IP not found"
fi