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