сценарий оболочки для автоматического уничтожения процессов, соответствующих определенным критериям

при запуске top он показывает, что несколько процессов получили почти 100% -ное использование процессора командой «perl»,

  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 21287 simon 15 0 4141 231 5891 S 90.3 0.0 14:27.50 perl 22545 albert 15 0 12744 1172 8321 S 99.0 0.0 20:00.58 perl ... ... 

lsof -p <pid> чтобы оценить, является ли это вредоносный процесс (обычно где-то вниз по линии трубопровода он пытается подключиться к внешнему ip-адресу с использованием локального порта> 50000)

kill -9 <pid> чтобы убить тот вредоносный процесс индивидуально

затем повторите описанное выше

в идеале я хотел бы автоматически убивать процессы:

  • пользователи, показанные выше
  • проработали более 15 минут
  • более 90% использования процессора.
  • с исходящим подключением tcp (если возможно)

есть ли у кого-нибудь удобный скрипт? благодаря!

One Solution collect form web for “сценарий оболочки для автоматического уничтожения процессов, соответствующих определенным критериям”

На самом деле у меня нет сценария, но убийство этих вредоносных процессов не поможет вам решить проблему, которая у вас есть в первую очередь … Я думаю, вы веб-хостинга, и это шахтеры, которые работают на вашем VPS?

То, что вы можете сделать, – это не убивать их, чтобы «убить их до смерти», используя группы.

У вас там будет учет процессора и сети, а также инструмент cgclassify . Вы можете создавать гибкие иерархии. Здесь есть хорошая документация для CentOS / RHEL.

Я не эксперт в деталях, но я думаю, что это возможно следующим образом: вы создаете группы для CPU / Memory / Network и классифицируете процессы в соответствии с используемыми долями с помощью cgclassify или демон mentend. Это означает, что демоны заботятся о том, чтобы контролировать использование ressource, и вы можете перемещать, например, процессы, которые используют сеть и определенное количество общих ресурсов процессора, в группу, которая сильно ограничивает доступ к ЦП и сети или прямо убивает процесс (например, из-за низкой памяти) ,

Вот представление с некоторыми деталями .

Проблема, связанная с убийством этих процессов каждые 15 минут, заключается в том, что они, вероятно, мгновенно возрождаются и что за 15 минут они наполняют ваши полные ресурсы.

С помощью групп вы можете классифицировать определенные безопасные двоичные файлы (например, PHP, Apache) и ограничивать все остальные процессы … поэтому использование CPU / Network не повлияет на сервер, и это медленное время, так что пользователям нечего запускать эти задачи. также возможно сформировать доли процессора таким образом, что процесс будет медленнее, чем больше процессор, который он использует. То же самое и для пропускной способности сети. Вы можете ограничить, например, все процессы для каждого пользователя, чтобы использовать только 1 Мбит для исходящих сетевых подключений или даже меньше.

Вы также можете просто использовать учетные данные из групп, чтобы убить процессы.

Выполнение этого «на лету» выглядит как другая проблема, но если проблема постоянна, ulatencyd использование и изменение ulatencyd или ulatencyd инструментов в соответствии с вашими потребностями. С хорошими правилами это должно заботиться о проблемных процессах быстрее, чем 15 минут и с некоторым сопротивлением.

  • `eval` работает на Ubuntu, но не работает на Debian и Kali
  • Использование $ в пароле
  • Выходной сигнал в ловушке, вызвавший вызванную ловушку?
  • Отмена выхода и возврат в оболочку
  • Хороший метод для сравнения времени?
  • находить измененные файлы рекурсивно и копировать с каталогом, сохраняющей структуру каталогов
  • Как вы получаете десятичный знак из математической операции с переменной?
  • Как использовать sudo -i в сценарии оболочки
  • scp (v4) копирование с удаленного на несколько локальных имен файлов
  • Переместить файл, но только если он закрыт
  • два, если условия для скриптов bash
  • Interesting Posts

    Linux / Windows 8.1: установка на raid0

    Можно ли запускать несколько команд mv в одном каталоге (состояние гонки)?

    Настройка частной зоны контейнера OpenVZ

    Ошибка systemd-timesyncd в контейнере OpenVZ

    SSH: «Соединение закрыто удаленным хостом» случайным образом во время работы на интерактивной сессии

    заменить два отдельных слова в согласованной строке sed

    Ошибка загрузки загрузчика Fedora

    скрипт для добавления пользователей в otrs

    Можно ли отключить возможность установки из репозиториев yum, которые могут включать зависимости?

    правильный способ синхронизации источников на freebsd

    Как можно отключить DYLD_LIBRARY_PATH для запуска процессов?

    Восстановление из прерванного перемещения раздела

    Fingerprint-GUI работает только как root?

    Какова была первоначальная (-ые) причина (-ы) добавления «стандартной ошибки», которая отделена от «стандартного вывода»?

    Зачем мне удалять CD из удаленной директории?

    Linux и Unix - лучшая ОС в мире.