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

我有一个很less使用的服务器,所以如果没有用户通过SSH和SAMBA共享login,我想每天closures一个工作。

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

如果这两个值均为零,则cron脚本将closures服务器。

活动的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}" 

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

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

通过portname,你需要select你正在查看的服务的端口,SSH将是端口22(所以它应该是grep ":22 " )(后面的空间只是确保它不是另一个端口。

如果你想select多个端口(如在samba中),请改变egrep ":(port|port|port) " grep