Как извлечь часть вывода команды curl и присвоить ее переменной оболочки?

As you can see from the screenshot of GCP firewall rule page, should I remove ICMP Protocol from firewall rules base on security concern? Will it lower the chance of being attacked?

Мнения по этому поводу расходятся, но, как правило, прием ICMP-пакетов не считается угрозой безопасности.

I'm using CentOS 7. I added net.ipv4.icmp_echo_ignore_all=1 to /etc/sysctl.d. Does this have the same effect as deleting the ICMP Protocol from GCP firewall rules page?

Нет. Существует несколько типов запросов ICMP. Ping или эхо-запросы — лишь один из них. Параметр icmp_echo_ignore_allотключает только пинг-ответы, а блокировка ICMP в брандмауэре заблокирует весь ICMP-трафик, пинг и все остальные. Это вызовет проблемы, так как пакеты ICMP иногда необходимы для правильной работы.

0
15.05.2020, 10:17
1 ответ

Это должно работать:

curl <...> | sed -E -n 's/.*(ES[^"]+).+/\1/p'

Пояснение:

  • .*означает «любой символ 0 или более раз»
  • ES[^"]+означает «ES, за которым следует любой символ, который не является «один или несколько раз»
  • .+означает «любой символ 1 или более раз»
  • \1означает «первая группа», так что внутри()
  • pозначает «печатать только совпадающие строки»

Если вы хотите сохранить его в переменной, вы можете сделать это с помощью обратной кавычки `вот так:

VAR="$(curl <...> | sed -E -n 's/.*(ES[^"]+).+/\1/p')"
2
28.04.2021, 23:14

Теги

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