Назад | Перейти на главную страницу

Как определить количество активных SSH- и SAMBA-подключений?

У меня есть сервер, который я использую нечасто, поэтому я бы хотел cron задание, которое будет отключаться ежедневно, если ни один пользователь не вошел в систему через SSH и общие ресурсы SAMBA.

Как я могу определить, сколько существует активных SSH-соединений и сколько активных SAMBA-соединений?

Если оба эти значения равны нулю, сценарий cron отключит сервер.

Активное соединение 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

По имени порта вам нужно выбрать порт службы, которую вы изучаете, для SSH это будет порт 22 (так что он должен быть grep ":22 ") (пространство позади просто гарантирует, что это не другой порт.

Если вы хотите выбрать более одного порта (как в самбе), измените grep на egrep ":(port|port|port) "