Как я могу передать в параметре sed?

Можно установить универсальные сообщения проверки активности TCP, я думаю, что существует установка ядра для этого. Но они являются обычно намного менее частыми (часы). Существует ПРАКТИЧЕСКОЕ РУКОВОДСТВО Проверки активности TCP, которое, кажется, имеет детали.

С другой стороны, почему не только туннелируют Подключение mysql по SSH, затем можно ли использовать сообщения проверки активности SSH?

$ ssh -L1234:127.0.0.1:3306 -o ServerAliveInterval=300 user@mysql-server
... (in another terminal)
$ mysql -u user -p -h 127.0.0.1 -P 1234

Третья опция состояла бы в том, чтобы создать туннель (например, OpenVPN) к Вашему серверу, и затем это обработает проверку активности (и прозрачно повторное подключение, и т.д.).

PS: "наши драгоценные ресурсы" аргумент в пользу истекающих установленных соединений TCP за 30 минут являются БАКАЛАВРОМ НАУК. К сожалению — я был на их месте прежде — некоторое оборудование является БАКАЛАВРОМ НАУК также. Например, BCP 142/RFC 5382 дает минимальное время 2 часов 4 минуты (и это - то, только если брандмауэр не может определить, все еще ли хост).

0
14.11.2013, 19:11
1 ответ

Кажется, что Вы пытаетесь повторно реализовать grep, там. Вместо sed просто использование:

grep -n -- "$var" file

Если var содержит regex метасимволы, которым Вы хотите соответствовать буквально, предоставить -F опция к grep:

grep -nF -- "$var" file

где var содержит Ваш желаемый шаблон.

От grep(1) страница справочника:

- n, - номер строки
Префикс каждая строка вывода с номером строки на основе 1 в его входном файле. (-n указан POSIX.)

Если Вы настаиваете на том, чтобы использовать sed, можно сделать функцию с этой целью:

notgrep (){
    if [ $# -ne 2 ];then
        echo "Usage: notgrep <pattern> <file>"
        exit 1
    end
    sed -n "/$1/{
        =
        p
    }" "$2"
}
2
28.01.2020, 02:37

Теги

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