Quassel IRC 0.14.0 常用命令详解
Quassel IRC 0.14.0 常用命令详解:账号管理、systemd 服务托管、SQLite 数据库运维与备份、证书操作、日志排障、客户端命令与体检脚本,全部基于 Ubuntu 22.04 实测输出。
Quassel IRC 0.14.0 常用命令详解
目标:按运维场景整理 Quassel IRC 0.14.0 的全部常用命令——服务端 quasselcore 管理命令、systemd 服务托管、数据库运维、证书操作、日志排障与客户端命令。本文为命令篇,全部命令在 Ubuntu 22.04.5 实测环境(quassel-core/quassel-client 1:0.14.0-1ubuntu0.22.04.4)执行并记录真实输出(实测日期 2026-10-26);参数逐项语义见配置篇。
一、命令体系总览
Quassel 的命令面在「安装即用」之上非常克制,实测梳理为五组:
| 组 | 命令 | 用途 |
|---|---|---|
| 服务端程序 | quasselcore | 常驻运行 + 一次性管理动作(加用户/改密码/选后端) |
| 服务托管 | systemctl / journalctl | quasselcore.service 的启停与日志 |
| 数据运维 | sqlite3 | 直查/备份聊天记录数据库(仅 SQLite 后端) |
| 证书操作 | openssl | 生成/查看/验证 4242 端口 TLS |
| 客户端程序 | quasselclient | 图形客户端(headless 下配合 xvfb-run) |
⚠️ 架构性结论(实测确认):quasselcore 没有运行期管理 CLI(无
quasselctl之类工具,无交互式管理 shell)。账号增改是「停会话式」的一次性命令行动作;网络、身份、高亮规则等业务配置只能通过客户端 GUI 操作——这意味着常规运维必须保留至少一台装客户端的机器(或部署 quassel-web)。
二、版本与帮助命令
quasselcore --version
# 实测输出:quassel v0.14.0 (dist-da9c1c9)
quasselcore --help # 服务端参数(配置篇表 2.1–2.6 全量收录)
quasselcore --help-all # 追加 Qt 特有选项
客户端同样支持 quasselclient --version/--help(headless 环境须 xvfb-run -a 包裹,实测直接运行 abort)。
三、账号管理命令
3.1 添加核心用户
sudo -u quasselcore quasselcore --configdir /var/lib/quassel --add-user
交互式输入用户名与两次密码后退出。实测创建的用户写入 SQLite quasseluser 表(查询验证):
sqlite3 /var/lib/quassel/quassel-storage.sqlite "SELECT userid,username FROM quasseluser;"
# 实测输出:1|admin
⚠️ 必须以 quasselcore 用户身份执行并对 configdir 有写权限,否则会在错误位置新建空库造成「假成功」(部署篇 FAQ Q3)。
3.2 修改用户密码
sudo -u quasselcore quasselcore --configdir /var/lib/quassel --change-userpass admin
交互式两次输入新密码即生效,无需重启服务。
四、systemd 服务管理命令
sudo systemctl start quasselcore # 启动
sudo systemctl stop quasselcore # 停止(优雅退出,实测日志可见 Caught signal 15 → Quitting...)
sudo systemctl restart quasselcore # 重启(改参数后的标准生效方式)
sudo systemctl status quasselcore # 状态(实测 active (running),Memory 约 6.3M)
sudo systemctl enable quasselcore # 开机自启(包安装默认已 enabled)
sudo systemctl disable quasselcore
日志命令:
journalctl -u quasselcore -f # 实时跟踪
journalctl -u quasselcore --since today
tail -f /var/log/quassel/core.log # 发行版默认文件日志(logrotate 周轮转)
💡 注意:单元
ExecReload=/bin/kill -HUP $MAINPID虽存在,但 Quassel 无 SIGHUP 重载配置语义——修改任何启动参数后一律restart而非reload。
五、数据库运维命令(SQLite 后端)
实测表结构:quasseluser(用户)、network(IRC 网络)、identity/identity_nick(身份)、ircserver(网络服务器)、buffer(缓冲区)、backlog(消息存档)、sender、user_setting、core_state、coreinfo。
DB=/var/lib/quassel/quassel-storage.sqlite
# 常用只读查询(实测通过)
sqlite3 $DB ".tables"
sqlite3 $DB "SELECT userid,username FROM quasseluser;"
sqlite3 $DB "SELECT networkid,userid,networkname FROM network;"
sqlite3 $DB "SELECT count(*) FROM buffer;"
sqlite3 $DB "SELECT count(*) FROM backlog;" # 聊天记录总量
sqlite3 $DB "PRAGMA integrity_check; PRAGMA wal_checkpoint(TRUNCATE);"
备份/恢复(聊天记录只在 SQLite 文件里,备份即救全部):
# 在线热备(推荐,不停服)
sudo -u quasselcore sqlite3 /var/lib/quassel/quassel-storage.sqlite \
".backup '/var/backups/quassel-$(date +%F).sqlite'"
# 冷备:停服后整目录打包
sudo systemctl stop quasselcore
sudo tar czf /var/backups/quassel-$(date +%F).tgz -C /var/lib quassel
sudo systemctl start quasselcore
存储后端迁移(更换/重选后端,会尽量搬移数据):
sudo systemctl stop quasselcore
sudo -u quasselcore quasselcore --configdir /var/lib/quassel --select-backend SQLite
sudo systemctl start quasselcore
⚠️ Ubuntu 22.04 仓库包仅 SQLite 可选(Qt 缺 PostgreSQL 驱动,启动日志实测警告),迁移命令在 jammy 上实际用于「重建/修复后端选择」;PG 路线需自备含驱动的构建。
六、证书管理命令
# 查看当前自签证书(实测存在 quasselCert.pem)
openssl x509 -in /var/lib/quassel/quasselCert.pem -noout -subject -dates
# 替换为自有证书(PEM 同时含证书链与私钥;或用 --ssl-cert/--ssl-key 分别指定)
sudo cp your-cert.pem /var/lib/quassel/quasselCert.pem
sudo chown quasselcore:quassel /var/lib/quassel/quasselCert.pem
sudo chmod 600 /var/lib/quassel/quasselCert.pem
sudo systemctl restart quasselcore
# 从客户端侧验证 TLS(实测 Verify return code: 0 (ok))
echo | openssl s_client -connect <core主机>:4242 | grep "Verify return code"
七、日志与排障命令
# 1) 提级排障:/etc/default/quasselcore 改 LOGLEVEL="Debug" 后
sudo systemctl daemon-reload && sudo systemctl restart quasselcore
# 2) 原始 IRC 报文级调试(临时,排障后必须关闭)
sudo -u quasselcore quasselcore --configdir /var/lib/quassel \
--loglevel Debug --debug-irc-id <网络ID> --debug-irc -l /tmp/irc-debug.log
⚠️
--debug-irc/--debug-irc-parsed帮助原文警告日志含密码,只允许临时开启并事后删除日志。
常用排障命令链(部署篇 FAQ 实测汇总):
systemctl status quasselcore # 进程在否
ss -tlnp | grep 4242 # 端口监听否(实测双栈)
grep -E "Warn|Error" /var/log/quassel/core.log # 快速抓异常(实测可抓到 PG 驱动警告)
tail -20 /var/log/quassel/core.log # 客户端连接记录(实测含 connected/authenticated 行)
关键日志行参考(实测原文):Listening for GUI clients on IPv4 0.0.0.0 port 4242 using protocol version 10(监听正常)、Client <IP> initialized and authenticated successfully as "admin" (UserId: 1)(认证成功)、Core is currently not configured!(未初始化,属新装正常态)。
八、客户端命令
quasselclient # 桌面启动,向导连接 core:4242
quasselclient --hidewindow # 启动即入系统托盘
quasselclient --account <id> # 启动即连指定账号
quasselclient --icontheme breeze # 官方推荐图标主题
quasselclient --qss my.qss # 自定义样式表
# headless 环境(纯命令行服务器)实测可用形态:
xvfb-run -a quasselclient --help
客户端首次运行生成 ~/.config/quassel-irc.org/(实测含 quasselclient.conf UI 状态与 settings.qss);网络/身份/高亮等业务配置存于核心数据库,换机器重装客户端不丢状态。
九、一键体检脚本(汇总)
#!/usr/bin/env bash
# quassel-check.sh:核心节点例行体检(实测环境全部通过)
systemctl is-active quasselcore && \
ss -tln | grep -q ':4242' && echo "[OK] 4242 listening" && \
test -s /var/lib/quassel/quassel-storage.sqlite && echo "[OK] sqlite present" && \
test -s /var/lib/quassel/quasselCert.pem && echo "[OK] cert present" && \
echo | openssl s_client -connect 127.0.0.1:4242 2>/dev/null | grep -q "Verify return code: 0" \
&& echo "[OK] TLS handshake" || echo "[FAIL] see: journalctl -u quasselcore -n 50"
十、参考链接
- 命令输出依据:
quasselcore --version/--help、quasselclient --help(2026-10-26 实测) - 服务托管:/lib/systemd/system/quasselcore.service、man quasselcore(1)
- 数据库:/var/lib/quassel/quassel-storage.sqlite(schema version 32,实测 .tables 清单)
- 同系列:认知篇《Quassel IRC 0.14.0 介绍与选型指南》、部署篇《Quassel IRC 0.14.0 Ubuntu 22.04 安装指南》、配置篇《Quassel IRC 0.14.0 配置参数详解》