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

Хотя вы можете сделать это с помощью петли и stat, если вы действительно хотите, это то, что найти хорошо и может сделать в одной строке. Вы можете создать специальный файл с меткой времени каждый раз при запуске скрипта и затем выбрать все файлы, более новые/папки, чем этот файл с:

find -name "*.$filetype" ! -newer timestamp.file

, которые найдут в дереве каталогов все файлы, названные по шаблону *.$filetype, и которые старше (не ! ), чем файл с меткой времени, как вы просили. Если вам нужны более новые файлы (что кажется более полезным), просто выньте ! .

Найдя файлы, вы можете попросить найти , чтобы сделать что-нибудь с ними, используя `-exec:

find -name "*.$filetype" -newer timestamp.file -exec cp '{}' "$destination" +

, который запустит cp со всеми найденными файлами в качестве аргументов, которые будут помещены в каталог с именем $destination, скопировав все найденные файлы в этот каталог.

В конце каждого запуска вашего скрипта вы можете обновить временную метку на вашем файле сравнения при помощи touch:

touch timestamp.file

и именно эта точка сравнения будет использована в следующий раз. Если файлы могут быть изменены во время выполнения скрипта, вы захотите быть немного осторожнее - обновите временную метку в самом начале, но скопируйте старый файл с его атрибутами, используя cp -p, и используйте его для сравнения (или наоборот).

Для сравнения с текущим временем (как в заголовке), тест -mtime на find может быть полезен, но я думаю из текста, что то, что вы действительно хотите, это получить изменения между двумя исполнениями скрипта.

Смола, взаимодействие с пользователем и т.д. в вашем скрипте могут остаться нетронутыми. Если Вам нужны только файлы в текущем каталоге (не в подкаталогах), добавьте -maxdepth 1.

1
05.03.2015, 15:16
1 ответ

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

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

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

Я не эксперт по деталям, но я думаю, что это возможно таким образом: Вы создаете CGroups для CPU / Memory / Network и классифицируете процессы в соответствии с используемыми акциями, использующими CGClassify или демон упоминания. Это означает, что демоны заботятся о контролирующем использовании Ressource, и вы можете переместить E.g. Процессы, которые используют сеть и определенное количество долей процессора в CGRUP, которая строго ограничивает процессор и доступ к сети или откровенно убивает процесс (например, из-за низкой памяти).

Вот задача некоторые детали .

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

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

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

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

1
27.01.2020, 23:51

Теги

Похожие вопросы