Извлеките точное количество элементов из того же идентификатора

Поскольку у меня закончились красные таблетки, следующее , а не не предоставляет решение для принудительного подключения определенного интерфейса для трафика SSH к определенному хосту. Это также похоже на проблему XY , потому что вы не хотите принудительно использовать интерфейс, вы пытаетесь заставить вашу локальную виртуальную машину взаимодействовать с хостом, находящимся в удаленной сети. Я все еще думаю, что могу вам немного помочь.


TL; DR: Добавьте маршрут к вашей виртуальной машине CentOS, чтобы она использовала маршрутизатор, доступный через NAT-интерфейс, при взаимодействии с Target. ip route add / 32 via


В целом ваша настройка кажется нарушенной. Если это действительно целевая машина, которая отклоняет ваши SSH-соединения, она определенно сломана.

  • Либо VPN предназначен только для того, чтобы позволить вашему хосту войти в сеть,
  • либо он предназначен для подключения ваших сетей.

В первом случае ваш SSH-трафик никогда не должен достигать целевой машины. Как следствие, он не может его отвергнуть.

Во втором случае VPN / setup не справляется со своей задачей по правильному соединению двух ваших сетей.

Из того, что вы описываете, я понимаю, что VPN предназначена только для подключения вашего хоста к какой-то сети. Если это так, то вся проблема заключается в проблеме маршрутизации, и единственный жизнеспособный способ для вашей виртуальной машины взаимодействовать с машинами в VPN (кроме вашего хоста) - через NAT вашего хоста. Поэтому вы всегда должны выбирать NAT-интерфейс, а не только для SSH.

Если вы не активируете мостовой адаптер, ваша виртуальная машина будет использовать маршрут через NAT-интерфейс для взаимодействия с Target.(Используйте ip route show для отображения настроенных маршрутов.) Как только вы активируете мостовой адаптер, он использует маршрут через мостовой адаптер. Это также свидетельствует о том, что ваша установка не работает. Например, на вашей виртуальной машине могут быть перекрывающиеся IP-подсети и / или несколько маршрутов по умолчанию.

Ваша текущая проблема, похоже, заключается в том, что как только вы активируете мостовой адаптер, ваша виртуальная машина CentOS изучает какой-то маршрут по умолчанию, который она предпочитает использованию NAT-интерфейса.

Чтобы решить вашу проблему, вы должны добавить маршрут к вашей виртуальной машине CentOS, который сообщает системе использовать маршрутизатор, доступный через NAT-интерфейс, при взаимодействии с Target или даже для каждого хоста в сети VPN. Если с вашей настройкой все в порядке, этот маршрут всегда будет иметь приоритет над маршрутом по умолчанию.

В конце концов, это один:

ip route add \
/ \
via `

2
21.12.2016, 11:46
5 ответов

Вы можете использовать awk

awk 'NR>1 {a[$1]++} END { for (x in a) { print x,a[x] } } ' file

NR> 1 игнорирует заголовок
a [$ 1] ++ - хеш-итератор

1
27.01.2020, 21:52

С кэш-память GNU

$ datamash -W --header-in groupby 1 count 2 < file
Prom_1  3
Prom_2  4
Prom_3  2
4
27.01.2020, 21:52

Простой способ с cat, cut, sort и uniq:

sed -n '1,$p' input | cut -d' ' -f1 | sort | uniq -c
0
27.01.2020, 21:52

Что-то похожее на user3589054:

поскольку Id много, при сортировке у вас не будет одинакового порядка Id, потому что, например, Id, начинающиеся с Prom_1 Prom_10 и т.д., будут первыми. Поэтому я сделал следующее, и все сработало нормально:

awk 'NR>1 {a[$1]++} END { for (x in a) { print x,a[x] } } ' file | awk -F "_" '{print $1"\t"$2"\t"}' | cut -f 2 | sort -n | awk -F " " '{print $1"\t"$2}' | sed 's/^/Prom_/' > file.output.txt

where:
awk 'NR>1 {a[$1]++} END { for (x in a) { print x,a[x] } } ' файл |
вы получите вывод с Id и номером, но не отсортированный

awk -F "_" '{print $1"\t"$2"\t"}' | вы разделите файл на Prom , номер, его Id номер и его количество

cut -f 2 | sort -n |
сортировка по номеру Id и его соответствующему количеству

awk -F " " '{print $1"\t"$2"\t"}'|
здесь вы табулируете две колонки

sed 's/^/Prom_/'
и наконец вы присоединяете Prom_ перед его номером Id

0
27.01.2020, 21:52

Вы можете подсчитать идентификаторы с помощью uniq :

tail -n +2 input | cut -d' ' -f1 | sort | uniq -c

Обратите внимание, что uniq ожидает отсортированный ввод. Мы используем tail , чтобы пропустить заголовок, и вырезать , чтобы «вырезать» первый столбец.

Пример вывода:

  3 Prom_1
  4 Prom_2
  2 Prom_3

Если идентификатор с меньшим числом должен быть напечатан перед идентификатором с большим номером (например, Prom_3 перед Prom_10 ), вы можете заменить ] sort с sort -V (сортировка по версиям):

tail -n +2 input2 | cut -d' ' -f1 | sort -V | uniq -c

Пример вывода (input2 содержит дополнительную строку для id Prom_10 ):

  3 Prom_1
  4 Prom_2
  2 Prom_3
  1 Prom_10
2
27.01.2020, 21:52

Теги

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