如何在无用户连接时简便列出Samba共享资源
如何在无用户连接时简便列出Samba共享资源
嗨,这个问题我太有共鸣了!smbstatus确实只能显示当前活跃的连接,要找出所有配置好的共享,你之前用的testparm加awk的命令虽然能跑通,但写起来有点繁琐,这里给你几个更省心的替代方法:
方法1:简化版testparm提取命令
如果只是想获取共享名称和对应路径,不用写那么复杂的awk逻辑,试试这条更直观的命令:
testparm -s 2>/dev/null | awk '/^\[/{share=$0} /path =/{print share " -> " $3}'
它会输出类似这样的结果,把共享名称和路径对应起来,一目了然:
[Archive 04] -> /volume1/Archive 04 [Archive 05] -> /volume2/Archive 05 [Archive 06] -> /volume3/Archive 06
方法2:用smbclient一键列出所有共享
smbclient是Samba自带的客户端工具,不需要复杂的文本处理,直接执行这条命令就能快速列出本地所有共享(包括系统默认的隐藏共享):
smbclient -L localhost -N
参数解释:
-L localhost:指定查询本地Samba服务器-N:跳过密码输入(查询本地共享无需身份验证)
输出结果会分类展示,Sharename栏目下就是所有配置好的共享名称,还会标注共享类型(比如Disk代表磁盘共享)。
方法3:直接读取Samba配置文件
如果你的Samba配置文件在默认路径(比如/etc/samba/smb.conf),也可以用grep直接提取所有共享名称:
grep -E "^\\[.*\\]$" /etc/samba/smb.conf
要是需要同时查看对应路径,搭配awk就能实现:
awk '/^\[/{print "\n共享名称:" $0} /path =/{print " 对应路径:" $3}' /etc/samba/smb.conf
对比你原来的命令,上面这几种方法要么更简洁,要么可读性更强,日常运维用起来顺手多了~
备注:内容来源于stack exchange,提问作者SebMa
相关产品推荐
相关产品推荐

