Что делает регистратор-f, имя файла делают?

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

-f file    Log the specified file.

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

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

POSIX не является никакой справкой:

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

Я ожидал бы, что это зарегистрируется:

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

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

$ 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 команда я получаю это сообщение об ошибке:

регистратор:./testfile: Никакой такой файл или каталог.

Что logger -f предполагаемый сделать?

4
задан 04.08.2010, 18:19

1 ответ

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

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

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

Таким образом, это работает:

logger -f testfile

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

7
ответ дан 07.12.2019, 19:57

Теги

Похожие вопросы