如何在Conky中列出登录记录?需显示最近3条登录信息
在Conky中显示最近3条登录记录的实现方案
当然可以在Conky里展示最近的登录记录啦!我帮你整理了一套简单易上手的实现方法,还能根据需求灵活调整显示格式,一起来看看~
核心原理
我们可以利用Linux系统自带的last命令提取登录日志——它会读取/var/log/wtmp文件里的登录历史,通过参数就能轻松筛选出最近3条记录,再把这个命令集成到Conky配置里就行。
具体配置步骤
- 打开你的Conky配置文件(通常路径是
~/.conkyrc或者~/.config/conky/conky.conf,根据你的发行版可能略有不同) - 在配置文件的合适位置(比如你想显示登录记录的区域)添加以下内容:
# 登录记录标题 ${color #2ecc71}最近3次登录记录${color} ${hr 2} # 获取并格式化最近3条登录信息 ${exec last -n 3 | grep -v 'wtmp' | awk '{printf "%-10s %-18s %-22s\n", $1, $3, $4" "$5" "$6}'}
代码解释
last -n 3:提取最近3条登录记录grep -v 'wtmp':过滤掉last命令开头的那行说明文字(比如wtmp begins ...)awk '{printf ...}':格式化输出,调整各字段的宽度,让显示更整齐。$1是用户名,$3是登录IP/主机名,$4-$6是登录日期和时间
灵活调整格式的小技巧
你可以根据自己的喜好随意修改显示效果:
- 调整显示字段:如果不想显示IP,只保留用户名和时间,就把awk部分改成
awk '{print $1, $4" "$5" "$6}';想加终端信息就加上$2 - 添加颜色高亮:给用户名加个蓝色高亮,比如
awk '{printf "%-10s %-18s %-22s\n", "${color #3498db}"$1"${color}", $3, $4" "$5" "$6}' - 自定义分隔:在每条记录之间加个分隔线,修改awk为
awk '{printf "%-10s %-18s %-22s\n---\n", $1, $3, $4" "$5" "$6}' - 定时刷新:如果需要每隔一段时间更新记录,把
${exec}换成${execpi 60}(这里的60代表60秒刷新一次,可自定义时长)
注意事项
- 确保你的用户账号有权限读取
/var/log/wtmp文件,普通用户一般默认都有这个权限,如果遇到权限问题,可以检查文件的权限设置(不建议用sudo执行Conky命令,避免安全风险) - 不同Linux发行版的
last命令输出格式可能略有差异,你可以先在终端执行last -n 3查看输出结构,再调整awk的参数匹配你的输出字段
内容的提问来源于stack exchange,提问作者Starblight
相关产品推荐
相关产品推荐

