Диагностика медленной загрузки Windows с помощью Process Monitor. Process Monitor: как отследить приложение, записывающее непонятные файлы на диск

(ProcMon) от Sysinternals.

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

Вообще, по моему мнению всё, что касается ProcMon лучше всего описано в книге от разработчиков, которая так и называется “Утилиты Sysinternals. Справочник администратора ”.

Я же не буду лезть в дебри, и постараюсь изложить с минимумом теории, и максимумом практики на конкретном примере.

Запуск ProcMon

Регистрирует активность файловой системы, реестра, сети, процессов, потоков, а также загрузку образов в реальном времени.

Ну как? Понятно? 🙂

Если просто запустить ProcMon рабочее окно программы моментально заполнился разными событиями, даже если вы ничего не делаете. Разобраться в этих событиях, и найти интересующие даже опытному мастеру очень сложно. Да и не нужно, но обо всём по порядку.

Чаще всего ProcMon запускается с конкретной целью, например, определить, что делает та, или иная программа, какой процесс пишет файлы в определённый каталог или ветвь реестра, куда девается место на диске, и т.д. Поэтому, если просто запусить ProcMon то придётся остановить сбор событий (Ctrl+E ), очистить уже собранные события (Ctrl+X ), настроить фильтры (Ctrl+L ), и снова запустить наблюдение. Для того, чтобы не делать столько лишний движений предусмотрен параметр командной строки /noconnect :

procmon /noconnect

Запуск с этим параметром запускает Procmon, но не начинает наблюдение, вместо этого сразу же открывается окно фильтров.

Вообще для упрощения запуска, я делаю (и всем советую делать так) как описывается всё в той же книге:

Мой соавтор Аарон обычно создает папку C:\Program Files\Sysinternals и распаковывает в нее содержимое пакета Sysinternals Suite. Там утилиты невозможно изменить без прав администратора. Затем он добавляет этот каталог в системную переменную окружения Path, что позволяет легко запускать утилиты откуда угодно, в том числе через меню Start | Run (Пуск | Выполнить ).

Фильтры в ProcMon

Как было сказано выше окно фильтров открывается при запуске с параметром /noconnect . Если вы его нечаянно закрыли, или нужно подправить уже настроенные фильтры, открыть окно фильтров можно сочетанием клавиш Ctrl+L , или через меню Filter | Filter… .

Вот мы и добрались до практики 🙂

Как мониторить реестр я уже , поэтому сегодня будем учиться мониторить файловую систему. Для примера будем отслеживать какие изменения делает стандартный блокнот.

Итак, у нас открыто окно фильтров.

Фильтры в ProcMon

На всякий случай нажимаем кнопку сброса фильтров в состояние по умолчанию – Reset (по умолчанию в ProcMon настроено до фига фильтров, не рекомендуется их удалять) и добавляем фильтр

Process Name is notepad.exe include .

Нажимаем кнопку Add . Как можно понять из названия захватываться будут только события, связанные с процессом notepad.exe, т.е. те события, которые генерирует блокнот.

Важный момент: имя процесса должно быть указано полностью – с расширением, иначе ProcMon ничего не захватит. Как вариант можно использовать фильтр

Process Name begins with notepad include

В таком случае будут захвачены события, связанные с процессами, начинающимися на notepad, это может быть как стандартный блокнот, так и Notepad++ , или какой-нибудь ещё блокнот. Таким же образом добавляем фильтр на запись файлов:

Operation is WriteFile include

Нажимаем Add иOK (вообще можно просто нажать OK , в таком случае ProcMon скажет, что такого фильтра ещё нет, и спросит хотим-ли мы его добавить. Дело в том, что нажатие кнопки закрывает OK окно фильтров, если это не единственный фильтр, то лучше нажать кнопку Add , это позволит добавить фильтр, и оставить окно фильтров открытым для последующих фильтров).

Так как нас интересует только файловая активность, в главном окне ProcMon отключаем значки наблюдения за реестром, сетью и процессами – оставляем только наблюдение за файловой системой (выделены на скриншоте ниже).

Ещё один важный момент.

По умолчанию ProcMon регистрирует всю активность системы, даже те события, которые не попадают под фильтры, что в некоторых случаях может приводить к подтормаживанию работы. Если вы уверены в том, что фильтры настроены правильно (в данном примере мы уверены), и вам не нужны события, скрытые ими – их можно отбросить при помощи опции Filter | Drop Filtered Events (Удаление отфильтрованных событий) в меню Filter . Данный параметр действует только на регистрацию текущих событий, ранее записанные события из журнала не удаляются.

После того как фильтры настроены запускаем сбор событий (кнопка с изображением лупы, или Ctrl+E ). Запускаем блокнот, пишем какой-то текст и сохраняем файл. Смотрим, что получилось:

Файловая активность в ProcMon

Как видно из скриношота ProcMon зафиксировал событие записи файла процессом notepad.exe по пути C:\temp\test.txt .

Проведём ещё один эксперимент.

Остановим захват событий (Ctrl+E ), закроем блокнот и очистим собранные события (Ctrl+X ). Вызовем окно фильтов (Ctrl+L ), сбросим фильтры (кнопкой Reset ) и добавим следующий фильтр:

Path begins with c:\temp\

Этим самым мы указываем, что нас интересует любая активность по пути C:\temp . А так как значение указано не точно (не is , а begins with ), то захватываться будут события не только из этого каталога, но и из всех его подкаталогов.

Проверьте, чтобы было включено наблюдение только за файловой системой (при сбросе фильтров всё сбрасывается в состояние по умолчанию)

Фильтры в ProcMon

Запустим наблюдение. Откроем проводник и перейдём по нашему пути. Заглянем в ProcMon.

Так выглядит открытие каталога в ProcMon

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

Можете открыть файл и посмотреть какая неразбериха будет в ProcMon. Вот почему я никогда не советую запускать ProcMon только для того, чтобы посмотреть, что там происходит в системе.

Для того, чтобы увидеть сами события чтения файла, остановите сбор событий, очистите окно результатов, добавьте фильтр

Operation is ReadFile

и снова откройте файл.

Должно получиться, что-то вроде этого (как видно из скриншота я открывал файл двумя разными процессами):

Process Explorer и Process Monitor - два из трёх очень полезных инструментов для тонкой настройки операционных систем Windows.

Если вы хотите знать, что прямо сейчас происходит на вашем компьютере, попробуйте Process Explorer. В своей основе Process Explorer - более сложная версия диспетчера задач Windows 10.

В нем, в реальном времени, отображается информация о запущенных процессах, включая какая учётная запись является владельцем определённого процесса. Какие файлы, ключи реестра и другие объекты этот процесс открыли. И какие библиотеки DLL этим процессом были загружены. А также, программа Process Explorer, обеспечивает моментальный снимок производительности системы и использования её ресурсов.

Вы предпочитаете загруженный, но информативный дисплей Process Explorer, более чистому, но почти пустому диспетчеру задач? Пожалуйста, для этого имеется свой параметр. А именно, в программе Process Explorer, выберите меню "Параметры" и затем "Заменить диспетчер задач" (для внесения этого изменения вам потребуются учётные данные администратора). После этого, нажатие клавиш Ctrl+Shift+Esc, вместо , откроет инструмент Sysinternals.

На примере ниже чётко видно, что Process Explorer очень активен. Для идентификации каждого процесса по типу, он использует цветовое кодирование, а для привлечения внимания к начинающимся и заканчивающимся процессам - анимацию.

Вид группировки по умолчанию в Process Explorer обрабатывает процессы родитель-потомок и использует цветовое кодирование для выявления различных типов процессов.

Цветовое кодирование, вы можете настроить самостоятельно. Для этого, нажмите "Опции" и выберите "Настройка цветов".

Параметры по умолчанию следующие:

Зелёный цвет указывает на новые объекты, а насыщенный красный - момент удаления объектов. Оба этих цвета появляются на короткое время, в момент начала и окончания процесса.

 Светло-голубой - определяет «собственные процессы», те, что работают под той же учётной записью, что и Process Explorer. Обратите внимание, что эти процессы могут выполняться в другом контексте безопасности чем учётная запись пользователя, под которой они были запущены.

Розовый цвет - выделяет процессы, которые содержат одну или более служб Windows. Когда вы наводите курсор на одну из этих строк, появляется подсказка, отображающая имена работающих в этом процессе отдельных служб. Что может быть полезным для определения какой экземпляр Svchost.exe за это отвечает.

 Фиолетовый (или тёмно-фиолетовый) - означает «Упакованные» (зашифрованные или сжатые) исполняемые программы. Это может означать потенциально вредоносные программы, особенно, если они связаны с неизвестным процессом.

 Бирюзовый - показывает иммерсивные процессы, которые связаны с приложениями Магазина Windows.

 Тёмно-серый - идентифицирует приостановленный процесс. Обычно это приложения Windows Store, которые вы ранее открыли, но уже не используете. Некоторые приложения Магазина Windows специально написаны так, что могут продолжать выполняться в фоновом режиме. Например, Groove Music будет продолжать проигрывать мелодии даже при переключении фокуса в другую программу.

Вы можете идентифицировать работу Windows и.NET процессов по их цветовому кодированию, хотя эти атрибуты, по умолчанию, параметры не отображают.

Маленькие графики, в верхней части окна Process Explorer, отображают системную информацию в режиме реального времени. Чтобы увидеть все графики в одном окне, нажмите Ctrl+I (как в информации) или, в строке меню, щёлкните "Вид" и выберите пункт "Сведения о системе". Ниже этот дисплей в действии.

Окно сведений о системе показывает графики производительности для текущей системы в режиме реального времени. А также, при наведении курсора на определённое место, детальные подсказки.

Внимание . Если вы не видите все графики, перезапустите Process Explorer от имени администратора.

Каждая из отдельных вкладок - CPU, Memory, I/O и GPU - содержит дополнительные сведения об этой конкретной группе ресурсов. В частности, на вкладке GPU, добавлены детали, которые вы не найдёте на вкладке "Производительность" диспетчера задач.

Реальная сила Process Explorer становится очевидной, когда вы, чтобы раскрыть меню доступных параметров, щёлкните правой кнопкой мыши на отдельном процессе.

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

Детали для запущенного процесса включают информацию о версии и запускается ли он автоматически.

Из этого диалогового окна "Свойства" или из списка процессов, вы можете отправить хэш-код этого файла в службу VirusTotal. Где на любом из отслеживаемых VirusTotal 50 с лишним антивирусов выяснить, не является ли он возможной вредоносной программой.

Нижняя панель окна Process Explorer обычно скрыта. С помощью сочетания клавиш Ctrl+L, вы можете сделать её видимой (или, в меню "Вид" выберите "Показать нижнюю панель"). Эта панель показывает одно из двух представлений для текущего процесса: или дескрипторы. Вы можете переключаться между двумя представлениями с помощью сочетаний клавиш Ctrl+D и соответственно Ctrl+H На рисунке ниже нижняя панель в представлении библиотеки DLL.

Нижняя панель может отображать связанный с выбранным процессом список библиотек DLL или список дескрипторов.

Process Monitor

Последний из трёх суперзвезд Sysinternals это монитор процессов, также известный как Procmon. При запуске, он в режиме реального времени отслеживает все, связанные с файловой системой, реестром, сетью, процессами, потоками и библиотеками DLL, действия.

Procmon, в считанные секунды, трассирует миллионы различных операций. Которые, для устранения помех, затем можно отфильтровать и сосредоточиться на потенциальной причине проблемы. Вы можете сравнительно легко захватить следы повышенной активности системы и сохранить их в файлах журнала Procmon. А затем проанализировать захваченные данные на другой системе.
Чтобы получить представление о степени захваченной Procmon детализации, смотрите листинг на рисунке ниже, который представляет активность системы за период, измеряемый в небольших долях секунды.

Во время трассировки, Process Monitor записывает все события каждого процесса, что, как показано в строке состояния, может привести к миллионам дискретных событий.

Хотя Procmon собирает все, что он отслеживает, параметры по умолчанию включают фильтр, который скрывает необработанные детали из файловой системы и самого Procmon. Можно настроить фильтр на лету. Просто щёлкните правой кнопкой на конкретной записи в определённом столбце, а затем в контекстном меню, выберите один из вариантов.

К примеру, на рисунке показан щелчок правой кнопкой мыши на строке Runtimebroker.exe в столбце имя процесса. Теперь можно выбрать, включить этот процесс в текущий фильтр, эффективно отображающий записи из этого процесса или исключить его, так чтобы скрыть результаты сопоставления. А также можно выбрать для выделения совпадающие записи, не скрывая те, которые не совпадают.

Щёлкните правой кнопкой мыши на элементе любого столбца, чтобы увидеть, содержащее совпадающие записи, меню опций для фильтрации событий.

Посмотрите на строку состояния в нижней части окна Procmon, чтобы увидеть был ли к записанным данным применён фильтр и, если да, какое влияние он имел. Например на рисунке, отфильтрованный список показывает меньше, чем 1 из 1000 событий, что позволяет прокрутку данных или дальнейшее фильтрование в поисках паттернов или .

Посмотрите в строке состояния, нижней части окна Process Monitor насколько эффективен ваш фильтр.

А также можно создать или изменить фильтр, используя диалоговое окно Process Monitor "Фильтр", которое предлагает удобное его использование. Для доступа к диалоговому окну "Фильтр", на панели меню монитора процессов, нажмите соответствующую кнопку. Вы можете задать условия, которые определяют какие события будут включены или исключены. Потом нажмите кнопку "Добавить" или выберите существующий фильтр и нажмите кнопку "Удалить". Чтобы немедленно увидеть эффект от нового фильтра, нажмите кнопку "Применить".

Нажатие кнопки «Фильтр» открывает диалоговое окно фильтра Process Monitor, где, с помощью раскрывающихся списков, вы можете добавить критерии. Перед выходом не забудьте нажать кнопку "Применить".

Непонятные файлы на диске мы обнаруживаем двумя путями. Либо они явно видны в проводнике или файловом менеджере, либо к ним приводят поиски причины исчезновения свободного места на диске. Хорошо, если после удаления файлов, они больше не появляются. Но так бывает не всегда, и в этом случае приходится определять приложение, которое их создает.

Однажды на форум обратился человек, у которого какое-то приложение записывало в корень системного диска файлы, в имени которых содержится tmp _out .

Конечно, не исключено, что эта система заражена, и требуется тщательная проверка всевозможными антивирусными средствами. Но далеко не всегда проблема связана с вредоносным кодом, и тогда понадобится другой подход. Проще всего вычислить виновника появления таких файлов с помощью утилиты . Из видео за четыре минуты вы узнаете, как это сделать.

Отслеживание активности

При запуске утилита отслеживает несколько типов системной активности:

  • реестр
  • файловую систему
  • процессы и потоки

Поскольку мы ищем причину записи файлов на диск, нужно сосредоточиться на активности в файловой системе. Для этого на панели инструментов оставьте включенной только одну кнопку, отвечающую за активность на диске.

Кроме того, убедитесь, что утилита отслеживает активность. Если у вас перечеркнута кнопка, которая на рисунке обведена красным, нажмите CTRL+E .

На рисунке выше активность отслеживается, причем только в файловой системе.

Основной фильтр

Теперь нужно применить фильтр, чтобы исключить не относящуюся к делу активность. Нажмите сочетание клавиш CTRL+L , и вы увидите возможности фильтрации. В Process Monitor сразу активны некоторые фильтры, исключающие отслеживание деятельности самой программы, а также некоторых системных компонентов (файла подкачки, таблицы MFT и т.д.). Это сделано для того, чтобы исключить мониторинг стандартной активности системы. В большинстве случаев удалять эти фильтры не нужно, и достаточно просто добавить свой.

На рисунке выше показан фильтр, который будет отслеживать создание и изменение всех файлов, в путях к которым содержится tmp _out . Давайте разберем фильтр подробнее слева направо:

  • Path . Путь в файловой системе. Также можно указывать разделы реестра, когда отслеживается активность в нем.
  • contains . Условие, по которому определяется поиск ключевого слова. В переводе с английского это слово означает «содержит». В зависимости от задачи можно конкретизировать условие, выбрав вариант begins with (начинается с) или ends with (заканчивается на).
  • tmp _out . Ключевое слово, которое в данном случае должно содержаться в пути. Имя файла и его расширение являются частью полного пути к файлу.
  • Include . Включение заданного условия в список отслеживаемых.

Не забудьте нажать кнопку Add , чтобы добавить фильтр в список. Впрочем, если вы забудете, Process Monitor напомнит об этом, прежде чем закрыть окно фильтров.

В данном случае я использовал часть имени файла в качестве ключевого слова, поскольку все непонятные файлы содержат в имени tmp_out. Если файлы создаются с разными именами, но зато в определенной папке, используйте путь к этой папке в качестве ключевого слова.

Поскольку задано жесткое условие фильтрации файловой активности, в окне программы, скорее всего, теперь не будет отображаться никаких процессов. Но Process Monitor уже начал их отслеживать.

Проверить работу фильтра очень просто. Достаточно создать в текстовом редакторе файл с искомым именем или в наблюдаемой папке, и Process Monitor моментально отреагирует на это.

Дополнительные фильтры

Обратите внимание, что утилита зафиксировала не только активность блокнота, но также проводника и поиска Windows. Не относящиеся к делу процессы можно исключить из результатов, создав дополнительные фильтры. Достаточно щелкнуть по процессу правой кнопкой мыши и выбрать из контекстного меню пункт Exclude <имя процесса> . Это самый простой способ создания фильтра, но можно сделать это из окна фильтрации, как показано выше. В этом случае условие будет: Process Name – Is — <имя процесса> — Exclude .

Запись и открытие лога

Учтите, что при длительном отслеживании размер лога может измеряться гигабайтами. По умолчанию Process Monitor записывает лог в файл подкачки. Если у вас маленький системный раздел, имеет смысл сохранять лог в файл на другом разделе диска.

Для сохранения лога в файл нажмите сочетание клавиш CTRL+B и укажите имя и желаемое расположение файла.

Изменения вступают в силу после перезапуска захвата активности. Теперь можно смело оставить Process Monitor включенным на длительное время, не опасаясь за лимит дискового пространства.

Остановить отслеживание активности можно сочетанием клавиш CTRL+E .

Впоследствии вы всегда сможете загрузить в утилиту лог из сохраненного файла. Закройте Process Monitor и дважды щелкните файл лога с расширением PML. Содержимое лога отобразится в окне Process Explorer.

Человек, обратившийся на форум с проблемой, так и не вернулся сообщить, помог ли ему мой совет. Но он был с таким вопросом не первый и, наверняка, не последний. Если вопрос возникнет у вас, вы сможете ответить на него с помощью Process Monitor.

О видео

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

Если честно, создание такого видео занимает намного больше времени, чем написание статьи. Поэтому я в любом случае не готов заменять печатный текст видеоматериалами. Но мне кажется, что в данном случае видео интереснее и понятнее. А что вы думаете по этому поводу?

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

Более подробный рассказ о Process Monitor и другие примеры его практического использования вы можете посмотреть в видео моего коллеги Василия Гусева , если у вас есть свободные 40 минут:)

Для диагностики причин медленной загрузки ОС Windows существует ряд довольно мощных утилит и методик анализа журналов событий, позволяющих выполнить детальную отладку всех этапов процесса загрузки системы и запуска служб (xperf/xbootmgr из Windows Performance Toolkit / Analyzer). Но их использование может вызвать ряд трудностей, особенно для начинающего системного администратора. В этой статье мы покажем, как с помощью Process Monitor можно довольно просто и быстро определить, какие программы, службы и драйвера долго выполняются при старте системы, увеличивая тем самым общее время загрузки для пользователя.

Безусловно, всем системным администраторам Windows, должна быть знакома утилита Process Monitor из комплекта системных утилит Sysinternals. Утилита Process Monitor позволяет в реальном времени отслеживать активность запущенных процессов, обращения к файловой системе и реестру. Одной из малоизвестной функцией Process Monitor является возможность включения режима мониторинга процессов запускаемых во время загрузки Windows.

Для диагностики этапа загрузки, Process Monitor создает отдельную службу в разделе реестра HKLM\SYSTEM\CurrentControlSet\Services. Данная служба загружает драйвер режима загрузки procmon23.sys , стартующий после запуска Winload.exe, который протоколирует активность всех, процессов выполняющихся во время запуска системы и входа пользователя.

  1. Скачайте и распакуйте архив с Process Monitor (http://download.sysinternals.com/files/ProcessMonitor.zip)
  2. Запустите с правами администратора файл procmon.exe
  3. В меню Options выберите пункт Enable Boot Logging
  4. В появившемся окне выберите опцию . В этом режиме драйвер procmon будет перехватывать состояние всех процессов каждую секунду
  5. Перезагрузите компьютер и дождитесь появления рабочего стола
  6. Драйвер procmon23.sys будет записывать все события до тех пор, пока пользователь не запустит утилиту Process Monitor . После этого режим протоколирования загрузки отключается.
  7. В окне Process Monitor соглашаемся с предложение сохранить собранные данные в файл.

    Примечание . Если не остановить работу Process Monitor, то временный файл журнала %windir%\procmon.pmb со временем займет все свободное место на системном диске.

  8. Выберите каталог, в котором нужно сохранить файл и дождётесь его сохранения. В моем случае в целевом каталоге появилось три файла Bootlog .pml, Bootlog-1.pml и Bootlog-2.pml общим размером 700 Мб.
  9. Щелкните по заголовку таблицы в окне ProcMon, выберите Select Columns и включите отображение столбца Duration
  10. Создадим новый фильтр в меню Filter .
  11. В качестве параметра фильтрации укажем Duration , условие more than и значение 10. Нажмите кнопку Add и ОК.
  12. Таким образом, в списке процессов окажутся только те процессы, у которых на выполнение некоторых операций ушло больше 10 секунд (10 секунд я выбрал для большей наглядности примера).
  13. Также для анализа процесса загрузки можно воспользоваться функцией в меню Tools ->Process Tree , позволяющей отобразить все процессы в виде графического дерева с информацией о начале, завершении и длительности процесса.

Осталось проанализировать полученный список процессов (в случае необходимости можно провести дальнейший анализ проблемного процесса, включив фильтр по имени исполняемого файла), соотнести процессы со службами, программами и драйверами и провести оптимизацию системы.

Как правило, этот анализ поможет выявить «тормозящие» процессы, засевший в системе троян (в первую очередь нужно анализировать дочерние процессы Winlogon.exe), принять решение о необходимости удалить/обновить проблемное ПО или драйвер устройства, отключить некоторые службы или изменить тип их запуска (отложенный запуск или ручной по запросу), убрать программы из . Чаще всего в этом списке оказываются антивирусы и другое «тяжелое» ПО.

Кто-то может быть уже читал и давно пользуется, а кто-то может быть даже и не слышал, поэтому хочу поведать вам о ней ещё раз, тем более что полтора года я не сидел сложа руки. Это автоматическая система слежения за торрент-трекерами, которая автоматизирует процесс скачивания торрент-файлов.


Самое главное для такой системы - это расширение количества поддерживаемых трекеров, не в угоду качеству, конечно же. За это время количество поддерживаемых трекеров увеличилось вдвое. На самом деле прикрутить поддержку очередного трекера дело нескольких часов, если только он не использует какой-то совсем уж заумный движок или слишком не удобен для парсинга (в основном это относится к именованию топиков раздач, к примеру добавить animereactor.ru не представилось возможным, ввиду отсутствия стандарта именования раздач). Теперь список поддерживаемых трекеров выглядит следующим образом:

  • anidub.com
  • baibako.tv
  • casstudio.tv
  • kinozal.tv
  • lostfilm.tv
  • newstudio.tv
  • nnm-club.me
  • novafilm.tv
  • rutor.org
  • rutracker.org
  • tfile.me
Трекеры между собой делятся на 2 типа:
- Форумные - те, у которых есть обновляемых раздачи
- Одиночные - те, на которых новые серии выкладывают по одной

Тут я немного подробнее расскажу о том, как это работает, потому что это является частым вопросом. Многие добавляют для мониторинга сериал на lostfilm.tv и ждут, что сразу что-то должно произойти, но это не так. Монитор среагирует на этот сериал только когда он появится в RSS ленте, а вот если добавить тему с rutracker.org, то torrrent-файл скачается сразу же после первого запуска системы, а в следующий раз, уже только когда будет перезалит torrrent-файл на трекере.

Формуные трекеры, имеют так же возможность следить и за релизерами


Это тоже на мой взгляд удобно и полезно, когда на трекере есть релизер, который выкладывает музыку в вашем любимом стиле, к примеру.

Вторым основным нововведением стала, наконец-то, поддержка торрент-клиентов, которая позволяет передавать torrent-файл непосредственно клиенту, который его качает, и при этом умеет удалять предыдущую раздачу из клиента (не важно какого типа раздача, «формуная» или «одиночная»). «Дружит» TM с Transmission и Deluge, т.к. это самые популярные клиенты среди моих пользователей и их просили «прикрутить». Это стало, пожалуй самым большим, расширением функционала за это время. Но, к сожалению, здесь есть ограничения - работает это только на *nix, т.к. работа строится через консоль этих клиентов.


Так же, в связи с блокировками некоторых трекеров у домашних провайдеров, очень сильно просили приделать возможность работы через proxy, что так же было реализовано и теперь систему можно завернуть в tor (его установить и сконфигурировать придётся, конечно же отдельно). А класс, работающий с БД, стал универсальным и поддерживает: MySQL, SQLite, PostgreSQL.

На удивление, ТМ стал достаточно популярен, я вижу, что его прикручивают не только на машины с Windows/Linux/Mac OS на которых он, естественно, нормально работает, но и на различные «коробочные» устройства на базе Linux`а: zyxel keenetic, различных NAS`ах, а так же на nas4free.

Надеюсь этот пост и моя небольшая разработочка покажутся кому то полезными и пусть даже если всего один человек после прочтения станет ей пользоваться - мне и этого будет достаточно.

А вообще мне крайне интересно развивать проект дальше, мне будет крайне интересно поработать с программистами что бы улучшить систему или добавить в неё новый функционал, добавить для работы новые торрент-трекеры и узнать для себя ещё что то новое. По этому всех желающих я приглашаю на github .

Ну и самое главное, ссылка на последнюю версию 0.9.2 ну а как развернуть и проверить систему, описано в readme файле в архиве.

А тут я спрячу оставшиеся скриншоты:)







Системные требования:
PHP 5.3 и выше, должен быть собран с поддержкой cURL и PDO.
Так же, в php.ini (для CLI) необходимо изменить следующие параметры:
max_execution_time = 300
allow_url_fopen = on (эту опцию желательно включить в php.ini как для CLI, так и для веб-сервера)
выставить date.timezone

Разворачиваем:

  • скачиваем архив
  • импортируем дамп базы из директории db_schema в зависимости от используемой БД - *.sql
  • переносим все файлы в папку на вашем сервере (например /var/www/htdocs/torrentmonitor/)
  • правим config.php и указываем данные для доступа к БД
  • заходим в веб-интерфейс (пароль по умолчанию - torrentmonitor, смените(!) его после первого входа).
  • указываем учётные данные от трекеров
  • указываем в настройках путь для сохранения торрентов (папка, которая мониторится вашим торрент-клиентом), e-mail и включаем/отключаем отправку уведомлений
  • добавляем торренты для мониторинга
  • переходим на вкладку «тест» и проверяем - всё ли верно работает
  • добавляем в cron engine.php
*/10 * * * * php -q /path/to/folder/torrent_monitor/engine.php

И пара слов для параноиков: Пароли от ваших учёток хранятся у вас в БД, ко мне ничего не отправляется. Для собственного спокойствия вы можете закрыть любую активность на мой домен, кроме файла korphome.ru/torrent_monitor/version.xml, он нужен для проверки обновления (но хотя если вообще прям параноик, можно и обновления не проверять).

С удовольствием выслушаю ваши мысли на тему дальнейшего развития проекта и интересного функционала.