编程笔记

lifelong learning & practice makes perfect

手慢无,免费领Perplexity年卡会员 网址:https://www.perplexity.ai/join/p/redeem

验证码:PPLXLIUMBLHOTVAJ2QI

记得用美国的节点。

免费领AI搜索鼻祖perplexity的年卡会员,价值200美刀。

推荐订阅

推荐并获得专业版$10的折扣,推荐给一个朋友,你们俩都可以获得折扣。赠送$10,得到$10。
每推荐一位订阅者,你的下一个计费周期可以减免$10,他们也可以减免$10。你可以推荐尽可能多的人,折扣会在每个计费周期内自动获取一次。

This Go blog post discusses the history and reasons behind the Go team's decision to stop pursuing syntactic language changes for error handling.Go 语言的错误处理,与众不同,报错会单独返回一个值,这导致代码冗余。多年来,使用者一直要求有更好的写法,Go 团队想了很多办法,效果都不好。现在,官方终于宣布,不再寻求更好的写法,保持现状。

阅读全文 »

NLWeb creates a standard protocol that turns any website into a conversational interface that both humans and AI agents can query naturally. It leverages Schema.org structured data and includes built-in support for MCP.NLWeb 是微软新提出的一个接口协议,类似于 MCP 协议,是网站跟 AI 大模型的对话协议,方便大模型从网站获取数据。本文是这个协议的简介。

阅读全文 »

了解如何使用 Cline 规则为 Cline 提供系统级指导,确保一致的行为、项目特定标准,并在您的项目中维护机构知识。

阅读全文 »

journalctl 是 Linux 系统上用于查询和管理 systemd 日志的命令行工具。 它提供了一种强大的方式来访问、过滤和分析系统日志,这对于诊断问题、监控系统性能以及审计安全事件至关重要。

以下是 journalctl 的一些主要作用和用法:

1. 查看系统日志:

  • 查看所有日志:

    1
    journalctl

    这将显示自系统启动以来的所有日志消息。

  • 查看最近的日志:

    1
    journalctl -n <数量>

    例如,journalctl -n 10 显示最近的 10 条日志消息。

  • 实时查看日志 (类似于 tail -f):

    1
    journalctl -f

    实时显示新的日志消息,直到按下 Ctrl+C。

2. 基于时间过滤日志:

  • 查看特定时间后的日志:

    1
    2
    3
    4
    journalctl --since "<日期时间>"
    journalctl --since "today"
    journalctl --since "yesterday"
    journalctl --since "2023-10-27 10:00:00"
  • 查看特定时间之前的日志:

    1
    2
    3
    journalctl --until "<日期时间>"
    journalctl --until "tomorrow"
    journalctl --until "2023-10-27 12:00:00"
  • 查看特定时间范围内的日志:

    1
    journalctl --since "2023-10-27 08:00:00" --until "2023-10-27 18:00:00"

3. 基于单元 (Unit) 过滤日志:

  • 查看特定服务的日志:

    1
    2
    journalctl -u <单元名称>
    journalctl -u nginx.service
  • 查看特定进程的日志 (通过 PID):

    1
    2
    journalctl _PID=<进程ID>
    journalctl _PID=1234
  • 查看特定用户启动的单元的日志:

    1
    2
    journalctl --user-unit <单元名称>
    journalctl --user-unit myapp.service

4. 基于优先级 (Priority) 过滤日志:

  • 查看特定优先级的日志:

    1
    journalctl -p <优先级>

    优先级包括:

    • emerg (紧急)
    • alert (警报)
    • crit (严重)
    • err (错误)
    • warning (警告)
    • notice (注意)
    • info (信息)
    • debug (调试)

    例如,查看所有错误和更严重级别的日志:

    1
    journalctl -p err
  • 查看特定优先级及以上级别的日志:

    1
    2
    journalctl -p err..crit  # 错误级别到严重级别
    journalctl -p err+ # 错误级别及以上级别 (包括严重,警报,紧急)

5. 基于内核日志:

  • 查看内核日志:

    1
    journalctl -k
  • 查看特定时间的内核日志:

    1
    journalctl -k --since "yesterday"

6. 输出格式化:

  • 以短格式输出 (默认):

    1
    journalctl
  • 以详细格式输出:

    1
    journalctl -o verbose
  • 以 JSON 格式输出:

    1
    journalctl -o json
  • 以 JSON-pretty 格式输出:

    1
    journalctl -o json-pretty
  • 以导出格式输出 (二进制,可用于传输):

    1
    journalctl -o export
  • 以猫格式输出 (最小化信息,适合管道传输):

    1
    journalctl -o cat

7. 其他功能:

  • 显示磁盘空间使用情况:

    1
    journalctl --disk-usage
  • 清理旧日志 (归档):

    1
    2
    journalctl --vacuum-time=2weeks  # 删除两周前的日志
    journalctl --vacuum-size=1G # 保留 1GB 的日志
  • 设置日志持久化 (如果 /var/log/journal 目录不存在,则创建):

    1
    2
    sudo mkdir -p /var/log/journal
    sudo systemctl restart systemd-journald

    重启服务后,systemd-journald 将持久化日志到磁盘。

总结:

journalctl 是一款非常强大的工具,它可以帮助你:

  • 诊断系统问题和应用程序错误。
  • 监控系统性能和资源使用情况。
  • 审计安全事件。
  • 跟踪系统启动和关闭过程。
  • 了解系统的行为和状态。

熟练使用 journalctl 是 Linux 系统管理员和开发人员的一项重要技能。 通过各种选项,你可以精确地筛选和分析系统日志,从而快速定位和解决问题。 使用 man journalctl 命令查看完整的文档和选项列表。