#linux #ssh #grep #string-matching
#linux #ssh #grep #сопоставление строк
Вопрос:
Я хотел бы написать скрипт (в системах на базе Linux), который выполняет следующее :
- У меня есть список удаленных машин, например, mc1, mc2, mc3 и так далее
- на каждой из этих машин у меня есть файл журнала, например, для /var/log/mail.log
- У меня есть уникальный идентификатор
- Этот уникальный идентификатор будет присутствовать только в одном файле журнала на любой из этих машин
- Теперь мне нужно выполнить поиск этого идентификатора во всех файлах журналов, хранящихся на этих машинах, и получить соответствующую строку.
Я подумываю об использовании 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 ---------;"