使用 logger(1) linux bash 工具命令时用户定义(或emmited)的用户名

Posted

技术标签:

【中文标题】使用 logger(1) linux bash 工具命令时用户定义(或emmited)的用户名【英文标题】:User defined (or emmited) username when using the logger(1) linux bash tool command 【发布时间】:2018-02-28 15:56:31 【问题描述】:

我正在尝试记录一些自定义日志。问题是,如果我使用 logger 命令,运行该命令的用户名也会被记录下来。我想省略该信息,以便我可以手动填写我想要的任何内容。我已阅读手册,但找不到类似的内容。我也尝试在脚本(java)中实现它,但没有成功退出。

示例。现在我看到了:

Mar  2 10:31:28 $HOSTNAME $USERNAME: Hello world!

我想看到的是这样的:

Mar  2 10:31:28 suhosin[666]: ALERT - canary mismatch on efree() - heap overflow detected (attacker '000.000.000.000', file 'xyz')

【问题讨论】:

@DmitriChubarov 我按要求编辑了我的原始帖子。 【参考方案1】:

使用-t 选项设置标签。

$ logger -t 'nobody' 'hello'

产生日志:

Feb 28 10:25:37 myhostname nobody: hello

相关手册页部分(加粗强调):

-t, --tag 标签

用指定的标签标记要记录的每一行。 默认标签为终端登录用户名(或基于有效用户ID的用户名)。

【讨论】:

是否可以同时更改主机名?提前致谢。 我确实有。唯一提到的是使用 rfc5424 选项来发出主机名命令。虽然我不确定我是否要更改 rfc,而且他们也没有提到哪个 rfc 是默认的(标准)。

以上是关于使用 logger(1) linux bash 工具命令时用户定义(或emmited)的用户名的主要内容,如果未能解决你的问题,请参考以下文章

linux日志logger命令详解

linux命令logger使用

Linux 上 Poco::Logger 的编译器错误 - 函数声明被视为宏

Linux休息提醒

Linux小白的成长历程~

Bash pipe:获取管道中前一个进程的退出状态