У меня есть файл журнала на удаленном сервере Linux со следующей информацией в нем:
Mar 29 18:15:06 mailserver amavis[12049]: (12049-13) Passed CLEAN {RelayedInbound}, [111.111.111.111]:25667 [111.111.111.111] <automated_email@dell.com> -> <johndoe@domain.com>,<orders@domain.com>, Queue-ID: 7711E18023F, Message-ID: <0e1430$gvauj1@ausxipmktpc11.us.dell.com>, mail_id: GQj-5bhH37Yi, Hits: -, size: 15551, queued_as: EE75C180429, 148 ms
Я пытаюсь выполнить команду на удаленном сервере к grep идентификатор сообщения: 0e1430$gvauj1@ausxipmktpc11.us.dell.com
Команда, которую я выполняю:
ssh -t root@remoteserver grep 0e1430$gvauj1@ausxipmktpc11.us.dell.com /root/log
Проблема с $
в идентификаторе сообщения. Если я grep это на удаленном сервере я могу найти идентификатор в журналах путем окружения идентификатора сообщения '0e1430$gvauj1@ausxipmktpc11.us.dell.com'
но когда я пытаюсь выполнить команду через ssh, это, кажется, не работает.
Для выполнения команды grep на удаленной машине, которая содержит знак $, Вам нужно:
т.е. добавляющий \\
перед знаком $.
ssh -t root@remoteserver grep 0e1430\\$gvauj1@ausxipmktpc11.us.dell.com /root/log
Заключением в кавычки и выходом по SSH является ЛАВАШ, поэтому отправьте шаблон в grep по каналу:
$ echo '0e1430$gvauj1@ausxipmktpc11.us.dell.com' | ssh localhost grep -Ff - foo
Mar 29 18:15:06 mailserver amavis[12049]: (12049-13) Passed CLEAN {RelayedInbound}, [111.111.111.111]:25667 [111.111.111.111] <automated_email@dell.com> -> <johndoe@domain.com>,<orders@domain.com>, Queue-ID: 7711E18023F, Message-ID: <0e1430$gvauj1@ausxipmktpc11.us.dell.com>, mail_id: GQj-5bhH37Yi, Hits: -, size: 15551, queued_as: EE75C180429, 148 ms
Используйте -F
опция так, чтобы grep не рассматривал его как regex. -f -
опция говорит grep читать шаблоны из stdin.
Или кавычка и Escape, если Вы должны:
$ ssh "grep '0e1430\$gvauj1@ausxipmktpc11.us.dell.com' bar"
Mar 29 18:15:06 mailserver amavis[12049]: (12049-13) Passed CLEAN {RelayedInbound}, [111.111.111.111]:25667 [111.111.111.111] <automated_email@dell.com> -> <johndoe@domain.com>,<orders@domain.com>, Queue-ID: 7711E18023F, Message-ID: <0e1430$gvauj1@ausxipmktpc11.us.dell.com>, mail_id: GQj-5bhH37Yi, Hits: -, size: 15551, queued_as: EE75C180429, 148 ms