如何手動將消息添加到Linux系統日志文件
日志文件是包含系統本身已記錄的一組記錄(或事件列表)的文件。使用日志文件,系統管理員可以跟蹤在特定日期或特定時間發(fā)生的情況。管理員通常將日志文件用于故障排除。日志文件是自動生成的,并保存在公共目錄-/ var / log /下。我們還可以將消息手動添加到Linux系統日志文件中。例如,設置日志服務器后,您可能要檢查日志服務器是否正常運行。為此,我們可以在日志文件中手動添加一些條目以測試日志服務器。這是logger命令派上用場的地方。
使用Logger命令將消息添加到Linux系統日志文件
ogger命令是util-linux軟件包的一部分,因此請不要安裝它。下面給到大家一些示例:
手動將條目添加到系統日志文件絕對簡單! logger命令的典型用法是:
- logger <message-to-add
示例:
- $ logger Welcome to OSTechNix
上面的命令會將條目“ Welcome to OSTechNix”添加到系統日志文件中。
讓我們使用“ tail”命令驗證消息是否已添加:
- $ tail -l /var/log/syslog
樣本輸出:
- Jan 31 07:19:23 ubuntuserver systemd[1705]: Listening on REST API socket for snapd user session agent.
- Jan 31 07:19:23 ubuntuserver systemd[1705]: Listening on GnuPG network certificate management daemon.
- Jan 31 07:19:23 ubuntuserver systemd[1705]: Listening on GnuPG cryptographic agent and passphrase cache.
- Jan 31 07:19:23 ubuntuserver systemd[1705]: Reached target Sockets.
- Jan 31 07:19:23 ubuntuserver systemd[1705]: Reached target Timers.
- Jan 31 07:19:23 ubuntuserver systemd[1705]: Reached target Basic System.
- Jan 31 07:19:23 ubuntuserver systemd[1]: Started User Manager for UID 1000.
- Jan 31 07:19:23 ubuntuserver systemd[1705]: Reached target Default.
- Jan 31 07:19:23 ubuntuserver systemd[1705]: Startup finished in 298ms.
- Jan 31 07:33:14 ubuntuserver sk: Welcome to OSTechNix
正如您在輸出中所看到的,給定的消息已添加到syslog文件中。
注意:
不同的Linux操作系統將日志消息存儲在不同的文件中。我建議您查看/ var / log /目錄,以了解日志存儲在哪些文件中。在基于RPM的系統(如CentOS)中,常規(guī)日志消息將存儲在/ var / log / messages文件中,而不是/ var / log / syslog文件中。
您還可以通過將消息括在單引號或雙引號中來添加消息。
- $ logger "Welcome to OSTechNix blog"
或者,
- $ logger 'Howdy, Welcome to OSTechNix blog'
檢查條目是否已添加到syslog文件中:
- $ tail -l /var/log/syslog
- [...]
- Jan 31 07:40:02 ubuntuserver sk: Welcome to OSTechNix blog
- Jan 31 07:40:31 ubuntuserver sk: Howdy, Welcome to OSTechNix blog
添加到系統日志
我們甚至可以使用-i標志(如下所示)在每一行中記錄記錄器進程的PID。
- $ logger -i 'Howdy, Welcome to OSTechNix blog'
使用tail命令驗證日志消息:
- $ tail -l /var/log/syslog
- [...]
- Jan 31 07:49:22 ubuntuserver sk[1879]: Howdy, Welcome to OSTechNix blog
1879是記錄器的進程ID。
在消息中添加標簽
您可能會在上面的輸出中注意到,新添加的條目會使用當前登錄的用戶名(即sk)進行標記。默認標簽是在終端上登錄的用戶的名稱。但是,我們可以使用-t標志將每行記錄為帶有特定標記的記錄。
- $ logger -i -t ostechnix 'Howdy, Welcome to OSTechNix blog'
檢查日志條目:
- $ tail -l /var/log/syslog
- [...]
- Jan 31 07:54:02 ubuntuserver ostechnix[1881]: Howdy, Welcome to OSTechNix blog
最后一個條目帶有ostechnix標記,其進程ID為1881。
將消息從文件添加到日志文件
也可以將文件中的條目添加到我們的系統日志文件中。
讓我們創(chuàng)建一個示例文本文件。
- $ echo "This is test file" > file.txt
- $ cat file.txt
- This is test file
現在,使用以下命令將file.txt的內容添加到系統日志文件中:
- $ logger -f file.txt
檢查日志文件:
- $ tail -l /var/log/syslog
- [...]
- Jan 31 08:43:06 ubuntuserver sk: This is test file
如果輸入文件中有任何空行,則可以使用如下所示的-e標志將它們排除在添加到日志文件之外。
- $ logger -e -f file.txt
優(yōu)先記錄消息
可以使用給定的優(yōu)先級記錄消息。
- $ logger "Welcome To OSTechNix" --priority user.warning
默認優(yōu)先級為“ user.notice”。請參閱記錄器手冊頁以了解所有可用的優(yōu)先級選項。
將來自“ stdin”的輸入和消息發(fā)送到系統日志
我們可以使用命令從支架輸入中輸入內容,然后使用以下命令將其推入系統日志:
- $ echo "Welcome to OSTechNix" | logger
記錄器將消息發(fā)送到遠程日志服務器
要將消息發(fā)送到在特定端口上運行的遠程syslog服務器,請運行:
- $ logger "Welcome to OSTechNix" --server <hostname-or-ip> --port <port-no>
或者,
- $ logger "Welcome to OSTechNix" -n <hostname-or-ip> -p <port-no>
默認端口號是514。
限制消息的大小
我們可以使用–size標志設置允許的最大消息大小。
- $ logger --size 5 abcdefghijklmnopqrswxyz
查看日志消息大小:
- $ tail -l /var/log/syslog
- [...]
- Jan 31 09:09:02 ubuntuserver sk: abcde
默認值為1KiB字符。
- $ man logger