如何确定活动 SSH 和 SAMBA 连接数?

如何确定活动 SSH 和 SAMBA 连接数?

我有一台不经常使用的服务器,因此,cron如果没有用户通过 SSH 和 SAMBA 共享登录,我希望每天关闭该服务器。

如何确定有多少个活动的 SSH 连接,以及有多少个活动的 SAMBA 连接?

如果这两个值都是零,则 cron 脚本将关闭服务器。

答案1

活动的 ssh 连接:

# netstat -an | grep -E "\:22[ \t]+" | grep ESTABLISHED | wc -l
1

活动的 Samba 连接:

# netstat -an | grep -E "\:445[ \t]+" | grep ESTABLISHED | wc -l

或者使用 lsof:

SSHCONNECTION=`lsof -i :22 | grep ESTABLISHED | wc -l`
SAMBACONNECTION=`lsof -i :445 | grep ESTABLISHED | wc -l`
echo "SSH connection: ${SSHCONNECTION} Samba connection ${SAMBACONNECTION}"

答案2

您可以使用以下命令检查任何服务的活动连接

netstat -an | grep ESTABLISHED | grep ":[portname] " | wc -l

通过端口名,您需要选择您正在查看的服务的端口,对于 SSH,它将是端口 22(所以应该是grep ":22 ")(后面的空格只是为了确保它不是另一个端口。

如果你想选择多个端口(就像在 samba 中一样),请将 grep 更改为egrep ":(port|port|port) "

相关内容