Samba 共享是否被外部系统使用?

Samba 共享是否被外部系统使用?

系统 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

相关内容