温馨提示×

怎样写linux syslog脚本

小樊
37
2026-09-16 21:44:19
栏目: 智能运维

在 Linux 下写“syslog 脚本”,通常有两种常见含义,我先帮你区分一下,然后分别说明怎么做。


一、什么是“syslog 脚本”

  1. 向 syslog 写日志的脚本
    用 shell / Python 等脚本,把程序运行信息记录到系统日志(如 /var/log/messages、/var/log/syslog)。

  2. 处理 syslog 的脚本(日志分析 / 转发)
    编写脚本读取 syslog 内容,做分析、报警、归档等。

下面分别讲。


二、向 syslog 写日志的脚本(最常见)

1️⃣ 使用 logger 命令(最简单)

logger 是 syslog 的命令行工具。

示例:Shell 脚本

#!/bin/bash

logger -t myscript "脚本开始执行"
logger -t myscript -p user.info "这是信息日志"
logger -t myscript -p user.err "发生错误!"

echo "日志已写入 syslog"

查看日志:

tail -f /var/log/syslog
# 或
journalctl -t myscript

参数说明:

  • -t:标签(TAG)
  • -p:优先级(facility.level)
    • user.info
    • user.err
    • local0.warn

2️⃣ Python 写 syslog

使用 syslog 模块

import syslog

syslog.openlog(ident="mypython", logoption=syslog.LOG_PID)
syslog.syslog(syslog.LOG_INFO, "Python 脚本启动")
syslog.syslog(syslog.LOG_ERR, "出错了")

查看:

journalctl -t mypython

3️⃣ C 语言写 syslog(了解即可)

#include <syslog.h>

int main() {
    openlog("myc", LOG_PID, LOG_USER);
    syslog(LOG_INFO, "Hello syslog");
    closelog();
}

三、处理 syslog 的脚本(日志分析)

示例:分析失败登录

#!/bin/bash

grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr

或 Python:

with open("/var/log/auth.log") as f:
    for line in f:
        if "Failed password" in line:
            print(line)

四、rsyslog 自定义规则(进阶)

编辑:

/etc/rsyslog.conf

示例:

local0.*    /var/log/myscript.log

重载:

systemctl restart rsyslog

脚本中:

logger -t myscript -p local0.info "测试"

五、最佳实践建议

✅ 使用 logger 写日志
✅ 区分日志级别(info / warn / err)
✅ 不要直接写 /var/log 文件
✅ 用 journalctl 查看 systemd 日志


如果你能告诉我:

  • 用 什么语言(bash / python)
  • 是 写日志 还是 分析日志
  • 是否使用 systemd

我可以给你更具体的模板。

0 踩