TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #273 1.42K
Очистка зависших SSH-сессий

Иногда пользователи (или вы сами) забывают выйти с сервера, и сессия остается в статусе idle или stuck, занимая ресурсы, блокируя терминалы и даже мешая обновлениям. Хорошая новость: Bash + w + ps + timeout помогут автоматически завершать такие сессии.

❓ Что считать зависшей сессией?

📍 Бездействие более 30 минут;
📍 Нет активных процессов;
📍 Неиспользуемый TTY;

🛠 Скрипт для автоудаления "спящих" SSH-сессий


#!/bin/bash

# Время бездействия в минутах
IDLE_LIMIT=30

echo "[*] Поиск SSH-сессий, бездействующих более $IDLE_LIMIT минут..."

w -h | awk -v limit="$IDLE_LIMIT" '
{
idle=$5
if (idle ~ /:/) {
split(idle, t, ":")
minutes = t[1]*60 + t[2]
} else if (idle ~ /old/) {
minutes = 999
} else {
minutes = idle + 0
}

if (minutes >= limit) {
print $2 # TTY
}
}
' | while read tty; do
echo "[!] Завершение процессов на $tty"
pkill -KILL -t "$tty"
done


🌟 Как это работает

w -h - список всех интерактивных сессий
awk парсит IDLE-время
pkill -t завершает процессы, связанные с TTY


❗️ Дополнительно:

📍 Добавь в исключения TTY root'а, CI/CD, сервисных пользователей;
📍 В проде лучше сначала логировать, потом - удалять;

BashTex 📱 #bash
  • 🔥 7
  • 👍 3
More from @bash_tex
  1. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  2. Oct 9, 2026BashTex 📱 #мем
  3. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  4. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  5. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  6. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →