2 分钟阅读 次阅读

概要:本文介绍了如何在 Ubuntu 系统中使用 Conky 工具,在桌面显示系统监控信息,包括 top 进程、dmesg 内核日志以及 journalctl 系统日志的配置与展示方法。同时还说明了如何设置 Conky 开机自启动以及多配置文件的使用方式。

1. Conky 简介

Conky 是一个轻量级、高度可定制的系统监视软件,它能够将你关心的各种系统信息直接显示在桌面上。它可以从系统内核读取大量数据,并以文本或图形的方式实时展示出来。通过调用外部脚本或程序,Conky 的能力还可以无限扩展,显示更多与系统无关的信息。


2. 使用示例:显示 top、dmesg 和 journalctl 信息

2.1 安装所需软件包

sudo apt update
sudo apt install conky conky-all lm-sensors htop stress -y

2.2 编辑配置文件

编辑桌面用户路径下的配置文件:

vim ~/.conkyrc

2.3 示例配置内容

conky.config = {
    alignment = 'top_left',
    background = true,
    border_width = 1,
    cpu_avg_samples = 2,
    default_color = 'black',
    default_outline_color = 'black',
    default_shade_color = 'black',
    draw_borders = false,
    draw_graph_borders = true,
    draw_outline = false,
    draw_shades = false,
    use_xft = true,
    font = 'DejaVu Sans Mono:size=12',
    gap_x = 20,
    gap_y = 40,
    minimum_height = 5,
    minimum_width = 450,
    net_avg_samples = 2,
    no_buffers = true,
    out_to_console = false,
    out_to_stderr = false,
    extra_newline = false,
    own_window = true,
    own_window_class = 'Conky',
    own_window_type = 'desktop',
    own_window_transparent = true,
    own_window_argb_visual = true,
    own_window_argb_value = 0,
    own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
    double_buffer = true,
    stippled_borders = 0,
    update_interval = 1.0,
    uppercase = false,
    use_spacer = 'none',
    show_graph_scale = false,
    show_graph_range = false
}

conky.text = [[
${color black}${font :bold:size=12}TOP (进程监控)${font}${color}
${execi 5 top -b -n 1 -o \%CPU | head -n 20}

${color black}${font :bold:size=12}DMESG (内核日志)${font}${color}
${execi 5 dmesg --time-format=iso | tail -n 15}

${color black}${font :bold:size=12}JOURNALCTL (系统日志)${font}${color}
${execi 5 journalctl -n 15 --no-pager -o short-iso}
]]

2.4 启动 Conky 显示

保存后,在桌面终端下运行以下命令即可展示:

conky

3. 设置 Conky 开机自启动

在系统的“会话与启动”设置中,添加一个启动程序,命令填写为:

conky

这样每次开机后 Conky 会自动运行。


4. 多内容显示配置

可以创建多个 Conky 配置文件,分别用于显示不同的内容。比如,可以在右上角显示系统相关信息。

vim ~/.conky_right.conf

配置文件示例如下

conky.config = {
    alignment = 'top_right',
    background = true,
    border_width = 1,
    cpu_avg_samples = 2,
    default_color = '000000',
    default_outline_color = 'black',
    default_shade_color = 'black',
    draw_borders = false,
    draw_graph_borders = true,
    draw_outline = false,
    draw_shades = false,
    use_xft = true,
    font = 'DejaVu Sans Mono:size=10, Noto Sans CJK SC:size=10',
    gap_x = 20,
    gap_y = 60,  -- 增加底部间距防止内容被截断
    minimum_height = 0,  -- 自动高度适配内容
    minimum_width = 300,
    net_avg_samples = 2,
    no_buffers = true,
    out_to_console = false,
    out_to_stderr = false,
    extra_newline = false,
    own_window = true,
    own_window_class = 'Conky',
    own_window_type = 'desktop',
    own_window_transparent = true,
    own_window_argb_visual = true,
    own_window_argb_value = 0,
    own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
    double_buffer = true,
    stippled_borders = 0,
    update_interval = 1.0,
    uppercase = false,
    use_spacer = 'right',
    show_graph_scale = false,
    show_graph_range = false
}

conky.text = [[
# ======================
# 系统信息
# ======================
${font Noto Sans CJK SC:bold:size=12}${color 000000}系统信息${font}
${font Noto Sans CJK SC:size=10}${color 000000}主机名:${alignr}${nodename}
${color 000000}操作系统:${alignr}${sysname} ${execi 1000 lsb_release -ds | cut -d ' ' -f1-}
${color 000000}内核版本:${alignr}${kernel}
${color 000000}运行时间:${alignr}${uptime}
${color 000000}处理器:${alignr}${machine} (${exec grep -c ^processor /proc/cpuinfo}核心)

# ======================
# CPU监控
# ======================
${font Noto Sans CJK SC:bold:size=12}${color 000000}CPU 监控${font}
${font Noto Sans CJK SC:size=10}${color 000000}使用率:${alignr}${cpu}%
${color 000000}温度:${alignr}${hwmon 0 temp 1}°C
${color 000000}频率:${alignr}${freq_g} GHz
# 显示全部核心
${color 000000}核心1:${alignr}${cpu cpu1}%
${color 000000}核心2:${alignr}${cpu cpu2}%
${color 000000}核心3:${alignr}${cpu cpu3}%
${color 000000}核心4:${alignr}${cpu cpu4}%
${color 000000}核心5:${alignr}${cpu cpu5}%
${color 000000}核心6:${alignr}${cpu cpu6}%
${color 000000}核心7:${alignr}${cpu cpu7}%
${color 000000}核心8:${alignr}${cpu cpu8}%

# ======================
# 内存监控
# ======================
${font Noto Sans CJK SC:bold:size=12}${color 000000}内存监控${font}
${font Noto Sans CJK SC:size=10}${color 000000}物理内存:${alignr}${mem} / ${memmax}
${color 000000}使用率:${alignr}${memperc}%
${color 000000}交换空间:${alignr}${swap} / ${swapmax}
${color 000000}缓存:${alignr}${cached}
${color 000000}缓冲区:${alignr}${buffers}

# ======================
# 硬盘监控
# ======================
${font Noto Sans CJK SC:bold:size=12}${color 000000}硬盘监控${font}
${font Noto Sans CJK SC:size=10}${color 000000}根目录(/):${alignr}${fs_used /} / ${fs_size /}
${color 000000}使用率:${alignr}${fs_used_perc /}%
${color 000000}Home目录(/home):${alignr}${fs_used /home} / ${fs_size /home}
${color 000000}使用率:${alignr}${fs_used_perc /home}%
${color 000000}IO读取:${alignr}${diskio_read}
${color 000000}IO写入:${alignr}${diskio_write}

# ======================
# 网络监控
# ======================
${font Noto Sans CJK SC:bold:size=12}${color 000000}网络监控${font}
${font Noto Sans CJK SC:size=10}${color 000000}eth0:${alignr}${addr eth0}
${color 000000}${upspeed eth0}${alignr}${downspeed eth0}

# eth1监控
${color 000000}eth1:${alignr}${addr eth1}
${color 000000}${upspeed eth1}${alignr}${downspeed eth1}
# wlan0监控(添加接口存在检测)
${if_existing /sys/class/net/wlan0}
${color 000000}wlan0:${alignr}${addr wlan0}
${color 000000}${upspeed wlan0}${alignr}${downspeed wlan0}
${endif}

# 确保最后有空行防止内容被截断
${font}
]]

  • 使用下面的方式加载
    conky -c ~/.conky_right.conf
    

    会话与启动中不识别~环境变量,可考虑使用绝对路径。

5. 效果展示

alt text

留下评论