Я бы:
Как код:
for f in./*
do
head -n 500 "$f" | grep -qF myip && { printf "Found in: $f"; break; }
done
Где вы должны заменить myip
на IP-адрес, который вы ищете. Вы можете создать функцию (или сценарий оболочки ), который принимает желаемый IP-адрес в качестве параметра для поиска :
.
findlogip ()
{
for f in./*;
do
head -n 500 "$f" | grep -qF "$1" && {
printf "Found in: $f\n";
break
};
done
}
Как roaima прокомментировал , вы можете быть осторожны с IP-адресом, который вы ищете, чтобы случайно не найти другой IP-адрес (10.55.33.6, но совпадающий с 110.55.33.68 в пример ). Предполагая GNU grep (, учитывая тег linux ), вы можете окружить заданный IP-адрес маркерами \b
:
...
head -n 500 "$f" | grep -q "\b$1\b" &&...
...
Вы отбрасываете-F
(фиксированную строку )параметр grep, так как выражение больше не является "фиксированным", а является регулярным выражением.
Полная последовательность переадресации портов в ssh: -L [<local_ip>:]<local_port>:<remote_ip>:<remote_port>
при этом локальный _ip может быть опущен.
<local_ip>
(или DNS-имя )будут разрешены с локального хоста, а<remote_ip>
(или DNS-имя )— с удаленного хоста (, в вашем случае это sshgateway.com ).
Изменить на основе вашего комментария:
Поправьте меня, если я не понял.
Ваша среда выглядит так:
host_1 -> host_2 -> host_3
your_PC -> sshgateway -> internal_db.local
и вы хотите подключиться с хоста _1 к базе данных, расположенной на хосте _3.
С предложенной вами переадресацией локального порта вы перенаправляете порт 4000 хоста _1 через хост _2 на порт 3306 хоста _3.
Для этого ваше соединение будет туннелироваться через ssh от хоста _1 к хосту _2, а затем отправлять как обычные ip-пакеты -с хоста _2 на хост _3, как если бы хост _] 2 будет подключаться к базе данных.
Поэтому хост _2 (sshgateway.com )должен разрешить IP-адрес хоста _3 (внутренний _db.local )со своим DNS-сервером.
Надеюсь, это прояснит ваш вопрос.
Переадресация портов в SSH включает локальный IP-адрес, локальный порт, удаленный IP-адрес, удаленный порт и пункт назначения. Как и в:
ssh -L $LOCAL_IP:$LOCAL_PORT:$REMOTE_IP:$REMOTE_PORT $DESTINATION
В этом примере DNS-имена для $LOCAL_IP
и $DESTINATION
разрешаются средой, в которой выполняется команда ssh
. DNS-имена для $REMOTE_IP
разрешаются средой по адресу $DESTINATION
.