外观
服务与日志命令
OMV 8 用 systemd 管理服务,用 monit 看护核心服务,系统日志在 systemd 日志(journald)里。下面的命令都在 OMV 的 shell(root 身份)里执行,不写 sudo。能只读查看的先只读查看,重启类命令放在最后用。
重启或停止服务之前
- 影响范围:
systemctl restart和stop会中断该服务的全部连接,例如正在传输的 SMB 文件、Web 界面的会话。重启nginx或php8.4-fpm期间 Web 界面短暂不可用。 - 前置条件:确认没有正在进行的文件传输、备份、RAID 重建或同步,并提前通知使用者。
- 怎么回退:服务起不来时先看
systemctl status <服务>和journalctl -u <服务>。OMV 管理的配置被改坏,用omv-salt deploy run <模块>按数据库重新生成,见 OMV 命令速查。 - 不要用
systemctl disable或mask去「永久关闭」OMV 管理的服务:下一次部署该模块时会被改回去。要关服务,在界面里关。
服务状态
| 命令 | 作用 | 执行位置 | 风险提示 |
|---|---|---|---|
systemctl --failed | 列出失败的服务单元 | OMV 的 shell | 只读 |
systemctl status <服务> | 服务状态和最近几行日志 | OMV 的 shell | 只读 |
systemctl is-active <服务> | 只输出 active 或 inactive,适合脚本判断 | OMV 的 shell | 只读 |
nginx -t | 检查 nginx 配置语法,不重启 | OMV 的 shell | 只读 |
monit summary | monit 看护的所有服务和系统检查的状态 | OMV 的 shell | 只读 |
monit status | 更详细的 monit 状态 | OMV 的 shell | 只读 |
OMV 里常见的服务名
| 服务名 | 对应什么 | 备注 |
|---|---|---|
nginx | Web 界面 | 配置语法错时,浏览器会提示「连接被拒绝」 |
php8.4-fpm | Web 界面的 PHP 后端 | 它的套接字不可用时,界面报 502 Bad Gateway |
openmediavault-engined | RPC 守护进程 | 它没运行时,界面报 Failed to connect to socket |
monit | 服务看护 | |
smbd | SMB 文件共享 | |
nmbd | NetBIOS 名称服务 | 只在 SMB 设置里启用了 NetBIOS 时运行 |
wsdd-server | Windows 的网络发现 | 启用 SMB 后默认一并启动 |
nfs-server | NFS 服务 | |
ssh | SSH 服务 | OMV 关闭了 ssh.socket,直接由 ssh 单元运行 |
rsync | rsync 服务端 | |
chrony | 时间同步 | |
postfix | 邮件通知 | |
smartmontools | S.M.A.R.T. 监控守护进程 | |
collectd、rrdcached | 性能统计的采集与缓存 | |
avahi-daemon | Bonjour 等局域网发现 | |
systemd-networkd、systemd-resolved | 网络与 DNS | 别通过 SSH 随便重启,会断开自己 |
openmediavault-firewall | 防火墙规则 | |
docker、containerd | Docker 引擎 | Compose 插件部署后才有 |
界面打不开时先查什么
| 现象 | 先查 | 详见 |
|---|---|---|
| 浏览器提示「连接被拒绝」 | nginx -t 和 systemctl status nginx | Web 界面打不开 |
| Failed to connect to socket | systemctl status openmediavault-engined | 502 Bad Gateway 与 Failed to connect to socket |
| 502 Bad Gateway | systemctl status php8.4-fpm | 同上 |
这三种情况都可以先用本机控制台的 omv-firstaid 处理,见omv-firstaid 救援工具。
日志
| 命令 | 作用 | 执行位置 | 风险提示 |
|---|---|---|---|
journalctl -b -p err --no-pager | 本次启动以来的错误级别日志 | OMV 的 shell | 只读 |
journalctl -u <服务> -n 50 --no-pager | 某个服务最近 50 行日志,例如 journalctl -u smbd -n 50 --no-pager | OMV 的 shell | 只读 |
journalctl -f | 实时跟踪日志,按 Ctrl+C 退出 | OMV 的 shell | 只读 |
journalctl -k -b | 本次启动以来的内核日志,磁盘 I/O 错误、USB 掉线在这里找 | OMV 的 shell | 只读 |
journalctl --since "1 hour ago" | 最近一小时的日志 | OMV 的 shell | 只读 |
journalctl -t smbd_audit | SMB 审计日志,需要在共享上启用审核文件操作,对应界面的 SMB/CIFS - 审核 日志 | OMV 的 shell | 只读 |
journalctl --disk-usage | 日志占用的磁盘空间。OMV 默认把上限设为 SystemMaxUse=1G,约合三个月 | OMV 的 shell | 只读 |
界面里的 诊断 → 系统日志 → 日志(Diagnostics → System Logs → Logs)读的也是这些日志,只有 Rsync 任务日志和更新管理日志是文件,见配置文件与目录索引。
网络、端口与共享状态
| 命令 | 作用 | 执行位置 | 风险提示 |
|---|---|---|---|
ip -br addr | 各接口的状态和 IP | OMV 的 shell | 只读 |
ip route | 路由表,确认默认网关 | OMV 的 shell | 只读 |
ss -tlnp | 正在监听的 TCP 端口和对应进程,查端口冲突时用 | OMV 的 shell | 只读 |
resolvectl status | DNS 解析状态 | OMV 的 shell | 只读 |
networkctl | systemd-networkd 管理的接口状态 | OMV 的 shell | 只读 |
netplan get | 当前生效的 netplan 配置 | OMV 的 shell | 只读 |
smbstatus | 当前的 SMB 连接和被锁定的文件 | OMV 的 shell | 只读 |
testparm -s | 解析并打印生效的 Samba 配置,用来核对扩展选项是否被接受 | OMV 的 shell | 只读 |
exportfs -v | 当前导出的 NFS 共享和选项 | OMV 的 shell | 只读 |
软件包与更新
| 命令 | 作用 | 执行位置 | 风险提示 |
|---|---|---|---|
apt list --upgradable | 可升级的软件包 | OMV 的 shell | 只读 |
dpkg -l 'openmediavault*' | 已安装的 OMV 软件包和插件及版本 | OMV 的 shell | 只读 |
apt-cache policy <包名> | 某个包的已装版本、候选版本和来源 | OMV 的 shell | 只读 |
apt-mark showhold | 被 hold 住不更新的软件包 | OMV 的 shell | 只读 |
升级本身用 omv-upgrade 或界面里的 系统 → 更新管理 → 更新(System → Update Management → Updates),见 OMV 命令速查。
Docker、Podman 与 Compose
docker 命令要装了 Compose 插件、Docker 引擎部署好之后才有。官方的 FileBrowser、PhotoPrism 等容器类插件用的是 Podman,所以要用 podman 命令看它们。
| 命令 | 作用 | 执行位置 | 风险提示 |
|---|---|---|---|
omv-compose-run <栈名> ps | 查看一个栈里的容器,<栈名> 是 Compose 共享文件夹里的目录名 | OMV 的 shell | 只读 |
omv-compose-run <栈名> logs --tail 50 | 栈里容器最近 50 行日志 | OMV 的 shell | 只读 |
omv-compose-run -n <栈名> config | 只打印将要执行的完整 docker compose 命令,不执行 | OMV 的 shell | 只读 |
omv-compose-run <栈名> up -d | 启动或更新栈里的容器 | OMV 的 shell | 中断服务:容器会被重建 |
omv-compose-run <栈名> down | 停止并移除栈里的容器,卷里的数据保留 | OMV 的 shell | 中断服务 |
docker ps -a | 所有容器及状态 | OMV 的 shell | 只读 |
docker stats --no-stream | 各容器当前的 CPU、内存占用 | OMV 的 shell | 只读 |
docker logs --tail 50 <容器名> | 某个容器最近 50 行日志 | OMV 的 shell | 只读 |
docker system df | 镜像、容器、卷占用的空间 | OMV 的 shell | 只读 |
podman ps -a | 官方容器类插件的容器及状态 | OMV 的 shell | 只读 |
omv-compose-run 会加上和插件完全相同的 --file 与 --env-file 参数,并把每次调用记进 /var/log/omv-compose-run.log。直接用裸的 docker compose 会漏掉 global.env 和 <栈名>.env,容易得到和界面里不一样的结果。
清理类命令不在本页
docker system prune、docker volume prune 这类清理命令会删除未使用的资源,卷里的数据删掉就没了。用 Compose 插件里的 Prune 菜单之前也要确认清单,容器问题的排查见容器启动失败。
重启类命令
只在确认影响范围之后使用,上面的警告块说的都适用。
| 命令 | 作用 | 执行位置 | 风险提示 |
|---|---|---|---|
systemctl restart <服务> | 重启一个服务 | OMV 的 shell | 中断服务:该服务的连接会断开 |
monit restart omv-engined | 通过 monit 重启 RPC 守护进程。官方文档里改环境变量后的生效步骤包含它 | OMV 的 shell | 中断服务:Web 界面几秒不可用 |
systemctl reboot | 重启整机 | OMV 的 shell | 中断服务:所有服务中断,先确认没有进行中的任务。界面里也可以重启,见认识 Web 管理界面 |