В общей сложности 2500 правил потребовали бы больших усилий для ЦП/пропускной способности в случае воздействия на каждый пакет. Если, например, вы отправляете 10 000 пакетов, вы будете анализировать 25 000 000 правил, что потребует много работы. Гораздо точнее и безопаснее было бы заблокировать весь входящий трафик (, кроме установленного и связанного ), а затем начать открывать сервисы, которые потребуют НОВЫХ подключений к вашей стороне.
Если вы хотите добавить черный список IP-адресов, вы можете использовать ipset , который может создавать такие списки в одном правиле, а также обновлять правила, не предполагая большого штрафа за вашу производительность. Например, если вы блокируете 2200 отдельных IP-адресов, вы можете сохранить их в списке и проверить их с помощью одного правила, что потребует гораздо меньше усилий с точки зрения ЦП.
Переберите имена и используйте замену переменных, чтобы удалить ненужные биты. Далее предполагается, что $HOME
равно /home/anik
и именно здесь находятся ваши файлы (измените topdir
на другое значение, если файлы расположены в другом месте):
#!/bin/sh
topdir=$HOME
for dirpath in "$topdir"/Zt.*.Spades; do
[ ! -d "$dirpath" ] && continue
newdirpath=$topdir/${dirpath#$topdir/Zt.}
newdirpath=${newdirpath%.Spades}
if [ -e "$newdirpath" ]; then
printf 'Can not rename "%s" into "%s", name taken\n' "$dirpath" "$newdirpath"
else
printf 'Renaming "%s" into "%s"\n' "$dirpath" "$newdirpath"
echo mv "$dirpath" "$newdirpath"
fi
done
Выражение $topdir/${dirpath#$topdir/Zt.}
будет заменено путем к каталогу, но без Zt.
в начале имени файла каталога. Он делает это, удаляя префикс $topdir/Zt.
и снова добавляя $topdir/
в начале.
Выражение ${newdirpath%.Spades}
заменяется на $newdirpath
, но удаляет строку .Spades
из конца значения.
Я добавил echo
перед командой mv
, чтобы вывести команду, которая будет выполняться вместо ее выполнения. Проверьте код, а затем удалите echo
, если он выглядит правильно.