Пропингуйте имя хоста с именем службы

Табулатура, которую вы разместили, кажется, построена из шести -длинных частей символов, -x----, где x— либо номер лада, либо тире. Вот так:

 123456123456123456
 -x-----x-----x----
|------------------|
|------------------|
|-0----------------|
|-2-----2-----2----|
|-------2----------|
|-------------0----|

Если они все с этим интервалом, вы можете просто изменить части, чтобы удалить некоторые черточки, не обращая внимания на другие строки.

$ sed -Ee 's/-(.)----/-\1/g; s/\|/-|/2' < tab
|-------| 
|-------|
|-0-----|
|-2-2-2-|
|---2---|
|-----0-|

Но если у вас в одном и том же файле записаны табуляции с разными интервалами, то это становится намного сложнее, так как нам нужно будет распознавать интервалы для каждой табуляции, а вообще это невозможно сделать даже с первого раза линия. (, так как он может быть пустым, как в вашем примере.)

Решения, которые я могу придумать для более общего случая, включают в себя расшифровку всей табулатуры и последующую ее перепечатку, что не подходит для этого ответа.


Обратите внимание, что синтаксис sed /this/,/that/обрабатывает блоки строк, где первая строка соответствует /this/, последняя строка соответствует /that/, а блок содержит все строки в между. Таким образом, /--/,/--/,/--/,...является абсурдом, поскольку существует больше шаблонов, чем просто начало и конец блока.

Чтобы сопоставить блок, похожий на табулатуру, вам нужно сопоставить |-, а затем расширить блок на шесть строк. В GNU sed для этого можно использовать /^|-/,+6.

0
12.01.2020, 04:30
2 ответа

Поскольку вы упомянули порт 1521, я полагаю, что на вашем сервере базы данных работает Oracle. Предлагаемый способ проверить подключение к серверу Oracle — использовать tnsping.

Это синтаксис tnsping:

tnsping <service name>

, где имя службы — это запись tns в вашем файле tnsnames.ora. Конечно, у вас должен быть установлен клиент Oracle на вашей машине, на которой вы выполняете tnsping.

2
28.01.2020, 02:29

Утилита Ping отправляет сигналы icmp (, для которых единственным ресурсом, который я быстро нашел, был случайный форум ), который обычно отображается на tcp или udp порт 7. Чтобы проверить, открыт ли порт (не блокируется в сети ничем, в том числе брандмауэром хоста )и что порт прослушивает (что-то его использует и принимает сигналы ), нужно использовать другой инструмент.

Обычно для этого используется

telnet, хотя у него гораздо больше функций.

$ telnet 192.168.1.1 80
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
^]
telnet> ^C

Обычно вы указываете telnet (имя хоста)(номер порта ). Так что для вас эта команда будет

telnet acg.com 1521

И если вы получаете информацию «Подключено к [IP-адресу]», оно подключено!

Вы также можете использовать утилиту ncnetcat. Его синтаксис очень похож, но -v для подробного описания очень полезен.

$ nc -v 192.168.1.1 80
Connection to 192.168.1.1 80 port [tcp/http] succeeded!
^C
0
28.01.2020, 02:29

Теги

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