Linux logger命令使用教程及示例

logger是Linux和Unix操作系统中使用的命令行工具,用于将日志添加到本地 /var/log/syslog 文件或远程系统日志服务器。logger为添加日志提供了不同的选项,如设置优先级、指定远程系统或显式定义Syslog端口。

null

记录器帮助和用法信息

logger命令默认安装在大多数Linux发行版中。所以没有必要显式安装它。我们可以打印帮助和使用信息 -h 选项如下。logger命令最常用的选项将与一些描述一起列出。

$ logger -h
logger Help and Usage Information
记录器帮助和用法信息

或者,要获得更详细的帮助和用法信息,我们可以查看并使用logger命令的手册页,如下所示。

$ man logger
logger Command Man Page
记录器命令手册页

记录器命令语法

logger命令的语法很简单,首先提供选项,然后是要发送Syslog的日志或消息。

logger OPTIONS LOG
  • `OPTIONS`是一个或多个选项,用于设置某些属性,如远程服务器、端口、日志设施等。
  • `LOG`是我们要添加或发送的日志消息。用双引号括起来会使它更可靠。

Linux系统日志

Syslog机制是Linux日志的重要组成部分。大多数Linux发行版,如Ubuntu、Debian、CentOS、Mint、RedHat、Suse,都将日志文件存储在 /var/log 目录。此目录下有不同类型的日志,如auth、MySQL、apache等。Syslog是一个通用日志文件,系统用于存储与系统、服务等相关的日志 syslog 可以使用下面的tail命令查看文件。

$ tail /var/log/syslog
Linux Syslog
Linux系统日志

从Syslog打印日志

在开始向syslog文件添加日志之前,打印当前syslog文件将非常有益。我们可以使用不同的命令来打印syslog文件。 tail 用于打印给定文件的最后10行的命令。或者,我们可以提供要显式打印的行数。在下面的示例中,我们将从 /var/log/syslog . 我们将使用 -n 选项以指定行计数。

$ tail -n 30 /var/log/syslog

图片[4]-Linux logger命令使用教程及示例-yiteyi-C++库

向Syslog文件添加日志

让我们从logger命令的一个简单示例开始。我们将只向syslog文件添加一行,而不向logger命令提供任何选项。在下面的示例中,我们将向syslog文件中添加行“This just a simple log line”。然后我们将使用tail命令列出。

$ logger "This is just a simple log line"
Add Log To Syslog File
向Syslog文件添加日志

我们可以看到日志被添加到底部列出的文件的末尾。下面还有一些关于日志的信息。

  • `Feb 26 01:20:47`是日志添加到syslog文件时的时间戳或日期信息。
  • `poftut com`是系统的名称。
  • `ismail`是用户名或记录器名称。

相关文章: Linux尾部命令教程

指定日志优先级或设施

通常,日志由创建日志的资源确定优先级。这也称为用于对日志进行分类的工具。我们可以使用 -p --priority 长格式选项。如果我们不提供贷款的优先权,则默认优先权为 user.notice . 在下面的示例中,我们将lof优先级设置为 local3.info .

$ logger -p "local3.info" "This is just a simple log line"

指定远程系统日志服务器IP地址

默认情况下,logger命令将把给定的logline放入本地系统 /var/log/syslog 文件。但情况并非总是如此。在企业环境中,应该在中央日志服务器中收集和管理日志。我们可以使用logger命令通过提供IP地址或主机名将给定的日志发送到远程服务器。我们将使用 -n --server 选项发送远程日志服务器。

 $ logger -n 192.168.1.10 "This is just a simple log line"

使用TCP作为系统日志协议

Syslog默认使用UDP协议。UDP提供了更快、更低的资源和更容易的日志文件传输。但是UDP不能提供完全可靠的TCP接口。我们可以使用 -T --tcp 选项。

 $ logger -n 192.168.1.10 -T "This is just a simple log line"

指定远程Syslog服务器端口号

当从本地向远程系统发送日志时,对于UDP和TCP协议,系统日志的默认端口都是514。我们可以使用 -P --port 通过提供端口号进行选择。

 $ logger -n 192.168.1.10  -P 1514 "This is just a simple log line"

将命令输出重定向为日志

Linux提供了许多工具,可以精确地记录它们的操作。我们可以使用logger命令将这些命令作为日志输出。e将只使用bashshell backticks来包围命令。下面我们将记录命令 who 进入系统日志。

$ logger `who`
Redirect Command Output As Log
将命令输出重定向为日志

syslog的最后一行提供who命令的输出,其中包含用户名、控制台号和当前登录用户的日期。

相关文章: 如何在Linux中排除Grep?

记录指定文件

我们可以将文本文件内容逐行放入syslog文件中。我们将使用 -f 选项并提供要记录的文件。在本例中,我们将记录名为 hostnames .

$ logger -f hostnames
Log Specified File
记录指定文件

设置或限制日志大小

日志用于创建简单信息。因此,当有些行包含大量数据时,应该对它们进行转换或设置限制。我们可以使用 --size 选项和要设置的字符数。在下面的示例中,我们将计数或限制设置为10。

$ logger --size 10 123456789012345678901234567
Set or Limit Log Size
设置或限制日志大小

忽略空白或空行

从文件中读取日志行时,可能有一些空行或空行。日志空或空行效率不高,因此我们可以忽略空白行或空行。 -e 选项如下。

$ logger -e -f hostnames

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享