4

Справочная страница сформулирована неоднозначно:

-f file    Log the specified file.

Есть один пример на странице руководства без дальнейшего объяснения:

logger -p local0.notice -t HOSTIDM -f /dev/idmc

POSIX не поможет:

Утилита logger сохраняет сообщение в неопределенном виде и формате, содержащее строковые операнды, предоставленные пользователем. Ожидается, что сообщения будут оценены позже персоналом, выполняющим задачи системного администрирования.

Я ожидал бы это войти:

  • в файл
  • что-то о файле
  • или что-то из файла

Однако, если я сделаю следующее:

$ echo "contents" > testfile
$ logger -f ./testfile "test message"
$ cat testfile
contents
$ tail /var/log/messages
Aug  4 10:00:00 hostname logger: test message

Я не имею ничего общего с "testfile" или его содержимым, а также с его содержимым. Если testfile не существует до того, как я выполню команду logger я получаю следующее сообщение об ошибке:

logger: ./testfile: такого файла или каталога нет.

Что должен делать logger -f ?

1 ответ1

7

Документация GNU немного понятнее и дает подсказку для дальнейшего тестирования:

-f файл
--file = файл
Записать содержимое указанного файла. Если файл '-', предполагается стандартный ввод.

Оказывается, что указание сообщения переопределяет спецификацию файла.

Так что это работает:

logger -f testfile

и записывает содержимое файла в файл журнала. Если файл состоит из нескольких строк, каждая строка становится отдельной записью в журнале.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .