大家好呀~今天来聊聊Linux系统里面超级实用的命令——logger。虽然看着不显眼,但作用可大了去了!对于经常在Linux上弄东弄西的你们来说,操作这个logger,可以帮你省不少事儿~
什么是logger命令?
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install bsdutils
[linux@bashcommandnotfound.cn ~]$ sudo yum install util-linux
大家知道,logger就是在系统日志中写点事的程序。它包括记录系统状况、提示、错误等方面的信息。有了logger,我们就能方便地记住这些内容,以后查看起来也就不费劲了。
[linux@bashcommandnotfound.cn ~]$ sudo dnf install util-linux
logger [选项] [消息]
logger命令的基本用法
只需学会用LOGGER命令,就能搞定!最基本的操作就是这么干:`logger[选项][信息]`。这里面的`选项`就像是调料,你可以调整消息的优先级,备注什么的都不在话下。至于要记录啥,直接把`message`写上就行。如果没给信息,LOGGER会自动从标准输入或文件里找内容。
如何安装logger命令?
[linux@bashcommandnotfound.cn ~]$ logger "Hello, world!"
Dec 27 15:08:50 linux user: linux: Hello, world!
碰上没安装logger命令那也别着急像Debian这种操作系统中的学霸内核,随意输入一句'sudoapt-getinstallbsdutils'就能搞定。在这个buzzin的包里,logger命令可是有的~用起来就是这么顺手!
[linux@bashcommandnotfound.cn ~]$ logger -p kern.crit "Kernel panic!"
如何指定消息的优先级?
[linux@bashcommandnotfound.cn ~]$ tail /var/log/kern.log
记住,logs爷爷那里,打个破折号,再跟上咱们的`-p`开关,就能告诉哪条消息儿往哪儿发了,串口就得这么填:`硬件设备名.信息层次’,比如`用户.注意’这样子。`硬件设备名’就是消息从哪儿出来的,而`信息层次’就是看这消息重要不重要。
Dec 27 15:08:50 linux kernel: linux: Kernel panic!
如何指定消息的标签?
下次发微信,记得打上原子标签就像给自己的APP起个名字或者加个特殊符号,让人家一眼就能看出你发的啥。比如说,你想给命名为“我的应用”的APP发条微信,那么这样发:"logger-t'我的应用'这是一条测试消息"。
[linux@bashcommandnotfound.cn ~]$ logger -t myapp "This is a message from my app"
如何添加进程ID?
Dec 27 15:08:50 linux myapp: This is a message from my app
有时候我们得记下程序id放进信息里,这样才能找到发信息的人。这时候就可以用到'-i'选项了,这样的话,每次发送的消息上都能看到发出它的程序id。
如何将消息输出到标准错误?
[linux@bashcommandnotfound.cn ~]$ logger -i "This is a message with PID"
想要看到消息不仅出现在系统日志里,还能马上跳出来吗?别忘了加个`-s`!这样就可以同时在系统日志和终端里看见咯。
Dec 27 15:08:50 linux linux[1234]: This is a message with PID
如何从文件中读取消息?
有时候我们要从文档中找点儿东西,然后发出去。这时,加上`-f`参数,再写下文件在哪儿,例如`logger-f/path/to/file`这样。
[linux@bashcommandnotfound.cn ~]$ logger -s "This is a message to stderr"
如何发送消息到远程日志服务器?
This is a message to stderr
Dec 27 15:08:50 linux linux: This is a message to stderr
只要你电脑连着远程日志服务器,那么用logger命令就能轻松把消息传过去!只需加上一个-h参数,然后填上服务器地址就搞定了。当然,如果你想指定端口号也是可以的。
如何使用本地日志服务器的套接字文件?
还在纠结如何使用本地日志服务?别担心,只需在`-u`参数后面加上你想要的日志路径就行了。至于默认值,那就是大家熟知的`/dev/log`~
[linux@bashcommandnotfound.cn ~]$ echo "This is a message from file" > /tmp/log.txt
如何查看消息是否发送成功?
想知道信息发出去没?别着急,瞧一瞧`/var/log/syslog`这个系统日志文件呗!不够直观的话,试试`tail`命令,让你实时看更新,不在担心信息丢失。
[linux@bashcommandnotfound.cn ~]$ logger -f /tmp/log.txt
如何使用logger命令发送复杂的消息?
Dec 27 15:08:50 linux linux: This is a message from file
有时候,处理一条复杂信息需要用到好几个功能。比如,设个优先等级,贴个标签还有那个进程ID啥的,还得把文件里的信息读出来发到远方的服务器去。虽然听起来有点儿烦,但其实只要按照步骤一步步来就好了!
总结与互动
[linux@bashcommandnotfound.cn ~]$ logger -n 192.168.1.100 "This is a message to remote server"
看完这么多日志(log)相关的介绍,logger这个命令是不是感觉眼熟了很多。虽说是基础,但其实很实用,让你能更加轻松搞定记录和浏览系统状态,发现并解决问题。那你们是用logger时遇到了什么问题吗?又或者你还有哪些小技巧可以跟我们分享?赶快留言告诉我们,大家相互学习成长!别忘记关注点赞
Dec 27 15:08:50 linux linux: This is a message to remote server