我有一个很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