скрипт для поиска строки в файлах журналов на удаленных машинах и копирования соответствующего текста

#linux #ssh #grep #string-matching

#linux #ssh #grep #сопоставление строк

Вопрос:

Я хотел бы написать скрипт (в системах на базе Linux), который выполняет следующее :

  1. У меня есть список удаленных машин, например, mc1, mc2, mc3 и так далее
  2. на каждой из этих машин у меня есть файл журнала, например, для /var/log/mail.log
  3. У меня есть уникальный идентификатор
  4. Этот уникальный идентификатор будет присутствовать только в одном файле журнала на любой из этих машин
  5. Теперь мне нужно выполнить поиск этого идентификатора во всех файлах журналов, хранящихся на этих машинах, и получить соответствующую строку.

Я подумываю об использовании bash / grep / ssh для этого, но не знаю как: (Может кто-нибудь, пожалуйста, помочь мне в этом 🙂

Комментарии:

1. Сузьте вопрос. Вы знаете, как получить файлы с удаленных компьютеров? Если нет, задайте этот вопрос.

Ответ №1:

можете ли вы попробовать следующее:

 ssh user@mc1 -c "echo "Machine: mc1; grep $UNIQUE_ID /var/log/mail.log; echo ---------;"
ssh user@mc2 -c "echo "Machine: mc2; grep $UNIQUE_ID /var/log/mail.log; echo ---------;"
ssh user@mc3 -c "echo "Machine: mc3; grep $UNIQUE_ID /var/log/mail.log; echo ---------;"
ssh user@mc4 -c "echo "Machine: mc4; grep $UNIQUE_ID /var/log/mail.log; echo ---------;"