Изменить имя файла.fasta

Компромисс упоминается вhttps://www.lisenet.com/2016/firewalld-rich-and-direct-rules-setup-rhel-7-server-as-a-router/

Похоже, это связано с использованием «прямых» правил для добавления необработанного правила iptables в таблицу, сгенерированную firewalld.

Вы просите разрешить переадресацию в любом направлении. Если я правильно понял, то должно быть так:

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth1 -o eth2  -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth2 -o eth1  -j ACCEPT

Не зная подробностей, я бы не рекомендовал эту политику. Это означает, что «сеть компании», вероятно, может сканировать вашу конфигурационную сеть на наличие ящиков с жестко запрограммированными паролями по умолчанию. Не личная критика; просто примечание для всех, кто читает это.

Одним из соображений может быть ограничение переадресации на порты SSH, HTTPS и HTTP. В случае, если есть какие-либо механизмы «восстановления пароля» или «отладки» на портах, о которых вы не думаете :-).

-3
12.07.2020, 05:02
1 ответ

Есть несколько способов решить эту проблему. Один из подходов:

#!/bin/bash

for i in *.fasta; do
    tokens=( $(echo "${i}" | sed -e 's/_/ /g') )
    newName="${tokens[2]}.${tokens[0]}_${tokens[1]}_${tokens[3]}'"

    echo "mv ${i} ${newName}"
done

Этот скрипт перебирает каждый файл в текущем каталоге, который заканчивается на .fasta; каждый раз в цикле переменная ${i}содержит текущее имя файла.

Затем сценарий использует sedдля замены символов подчеркивания(_)на пробелы в имени файла и сохраняет это как массив токенов. Для файла с именем Name_ID1_Name2_ID1000.fastaвы получите:

tokens[0]='Name'
tokens[1]='ID1'
tokens[2]='Name2'
tokens[3]='ID1000.fasta'

Затем сценарий создает newNameна основе этих токенов и вашего описания нужного вам порядка. Наконец, сценарий выводит команду mv, которую он будет использовать для выполнения переименования.

Если вы запустите сценарий, он напечатает то, что должен был сделать. Вы можете проверить это, чтобы убедиться, что он ведет себя так, как вы хотите. Если это так, то вы можете удалитьecho:

mv "${i}" "${newName}"

и запустите его снова. При этом он фактически выполнит переименование.

0
18.03.2021, 23:20

Теги

Похожие вопросы