系统 A(Ubuntu 服务器 18.04 LTS)通过 Samba 共享目录。在 A(服务器)上,有没有办法判断当前是否有其他系统连接到共享?
目的是避免在任何 Samba 共享正在使用时关闭 A。
自动化(shell 脚本)方法是理想的,但是手动也可以。
答案1
sudo smbstatus
您可以使用 -S 开关运行它来获得更紧凑的输出:
sudo smbstatus -S
答案2
感谢两位出色的回答,其中一个来自 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