Linux命令-logger(将消息写入系统日志)

🧭说明

logger 是 Linux 系统中一个非常实用的命令行工具,用于将消息写入系统日志。它提供了与系统日志服务(如 syslogrsyslog)交互的接口,特别适合在脚本中记录运行状态或关键事件。

下面这个表格汇总了 logger 命令最常用的选项。

💻 核心选项速览

选项 说明 示例
-p, --priority 指定日志的设施级别 ,格式为 facility.level。默认为 user.notice -p local0.error
-t, --tag 为日志条目添加一个标签。默认使用当前用户名。 -t MyBackupScript
-i, --id 在日志中记录写入该条目的 logger 进程的 ID (PID) -i
-f, --file 读取指定文件的内容,并将其每一行作为一条日志消息写入。 -f /tmp/status.txt
-s, --stderr 在将日志写入系统日志的同时,也输出到标准错误流,通常会在终端显示。 -s
-n, --server 将日志消息发送到指定的远程 syslog 服务器 -n 192.168.1.100

详细用法与场景示例

1. 基础用法:记录简单消息

最基本的用法是直接在命令后跟上要记录的消息。

bash 复制代码
logger "服务器备份任务已开始执行"

这行命令会将消息记录到默认的系统日志文件(如 /var/log/syslog)中。

2. 脚本实践:添加标签和优先级

在脚本中使用时,强烈建议使用 -t 选项添加一个唯一标签,并使用 -p 选项区分日志级别,这样便于后续筛选和排查问题。

bash 复制代码
#!/bin/bash
SCRIPT_TAG="MyApp_Backup"

logger -t $SCRIPT_TAG -p user.info "备份脚本启动"
# 执行备份逻辑...
if [ $? -eq 0 ]; then
    logger -t $SCRIPT_TAG -p user.info "备份成功完成"
else
    logger -t $SCRIPT_TAG -p user.error "备份过程中发生错误"
fi

关于优先级 (-p)

优先级由两部分组成:

  • 设施 (Facility) :指明消息来自系统的哪个部分,例如 kern (内核), mail (邮件), cron (计划任务), local0-local7 (保留给本地使用) 等。
  • 级别 (Level) :表示消息的严重程度,从低到高依次有 debug, info, notice, warning, err, crit, alert, emerg

例如,-p cron.err 表示一个来自计划任务的错误消息。

3. 高级功能:记录文件内容与远程日志
  • 从文件记录日志 :使用 -f 选项可以方便地将一个文件的全部内容快速记录到日志中。

    bash 复制代码
    logger -t "ConfigDump" -f /etc/myapp/config.conf
  • 发送日志到远程服务器 :在分布式环境中,可以使用 -n 选项将日志集中发送到一台远程 syslog 服务器,默认使用 UDP 514 端口。

    bash 复制代码
    logger -n loghost.example.com -t "WebServer01" "用户登录成功"
4. 查看记录结果

日志记录后,通常可以使用 grep 命令在日志文件中查看。系统的日志文件一般为 /var/log/syslog/var/log/messages,具体位置取决于系统配置。

bash 复制代码
# 查看带有特定标签的日志条目
grep "MyBackupScript" /var/log/syslog

# 或者使用 tail -f 实时监控
tail -f /var/log/syslog | grep "MyBackupScript"
相关推荐
M78佐菲1 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
骇客野人1 小时前
Redis 完整安装部署方案(Linux,分【源码编译】+【Docker】两种,推荐生产用源码,测试快速用 Docker)
运维
益达丫2 小时前
Socket编程揭秘:端口、IP与进程通信的底层逻辑
linux·笔记
蓝速科技4 小时前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
chicheese5 小时前
Linux 面试速查表:从初级到高级,附高频场景答题模板
linux·运维
Linux-lucky5 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
智能运维指南6 小时前
2026年ITSM系统怎么选?四款主流方案与五维评估模型
运维·itsm·嘉为蓝鲸
vortex56 小时前
常用终端模拟器全面对比:Kitty、WezTerm、Ghostty 与 Konsole
linux
我命由我123456 小时前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
骇客野人6 小时前
测试环境MySQL迁移Vastbase(海量数据库)完整改造与落地实施方案
运维·服务器