Можно установить универсальные сообщения проверки активности 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 минуты (и это - то, только если брандмауэр не может определить, все еще ли хост).
Кажется, что Вы пытаетесь повторно реализовать 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"
}