logger -f filename 起什么作用?

logger -f filename 起什么作用?

手册页措辞含糊:

-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办呢?

答案1

GNU 文档更清楚一些,并为进一步测试提供了提示:

-f file
--file=file
记录指定文件的内容。如果 file 为 '-',则假定为标准输入。

事实证明,指定消息会覆盖文件的指定。

因此这是可行的:

logger -f testfile

并将文件内容记录到日志文件中。如果文件包含多行,则每行都将成为日志中的单独条目。

答案2

只是为了支持丹尼斯·威廉姆森的回答

只需读取文件并写入 syslog 守护进程

相关内容