我正在尝试找到一种方法来做到这一点。现在我有一个脚本,只允许通过运行“smbstatus”来重置 samba,但它不是很可靠(当 Windows 客户端映射共享时显示锁定的文件,没有文件活动)。
有没有办法检测Samba何时传输文件?
注意:仅活动文件传输,而不是映射客户端
编辑:这是我的脚本的样子
until sudo smbstatus | grep "No locked files"
do
echo "Processes Running..."
sleep 5
echo ""
done
sudo service smbd restart
echo "Restarted SMB"
答案1
您可能希望使用该deadtime
设置来终止smbd
未主动使用的子进程。
示例,在子进程闲置 10 分钟后将其终止:
deadtime = 10
该文档指出,除其他事项外,
仅当打开文件数为零时,死区时间才生效。
大多数客户端都具有连接断开时自动重新连接的功能,因此在大多数情况下此参数对用户应该是透明的。
对于大多数系统,建议使用此参数并设置几分钟的超时时间。
使用此方案,您可以计算子进程的数量,并在仅剩父进程时执行重置。 (请注意,这可能是运气,但我最近在重新启动父进程时没有遇到任何问题smbd
,即使子进程仍在运行也是如此。)