Система (сервер Ubuntu 18.04 LTS) совместно использует каталог через Samba. На (сервер) там способ сказать, подключается ли какая-либо другая система в настоящее время к доле?
Цель состоит в том, чтобы не закрываться, если какая-либо доля Samba используется.
Автоматизированный (заданная сценарием оболочка) средства выполнения так были бы идеальны, но ручной в порядке.
sudo smbstatus
можно получить более компактный вывод путем выполнения его с переключателем-S:
sudo smbstatus -S
Благодаря двум отличным ответам, одному в этой ветке от Morbius 1, вот простой сценарий, который проверяет, обслуживает ли сервер, прежде чем его выключить. Вызывающий сценарий входит в постоянный цикл «do» с вызовом этого сценария и засыпанием на несколько минут.
#!/bin/bash
# Check for open Samba share.
# All shares are named "share" something,
# so grep for "share" is usable
smbstatus | grep -i share > /dev/nul
samba=$?
# Check for open NFS mount.
# Grep for port 2049, then
# grep that for "ESTAB"
netstat -naptule | grep :2049 | grep ESTAB > /dev/nul
nfs=$?
# If either came back zero, something is active.
if [[ $samba != 0 && $nfs != 0 ]]; then
shutdown -h now
fi