Я в настоящее время с помощью функции языка Python,файла демона сканирования (OS X) в Python
os.walk('/')
перебрать всю свою файловую систему на OS X. Моя цель состоит в том, чтобы сделать личный демон, который отслеживает:
- Новоиспеченные файлы/каталоги
- Скорректированная/прикоснулся файлов/DIRS
- удаленных файлов (возможно)
Идея
Это больше предусмотрительных функций Я хотел бы добавить к моему Macs, чтобы иметь возможность увидеть, если странные вещи получают помещены в моих каталогах нежелательных, так что если мои компьютеры Mac когда-либо заразиться некоторыми (но неизвестный) троянец, я могу, возможно, сам это обнаружить. Также я изучаю возможность добавления функций позже, чтобы, возможно, отключить мои интернет-соединения и т. Д., Когда что-то отключено. Это, возможно, иррациональная функция, но поскольку это всего лишь персональный сценарий, я думаю, что это не так уж плохо: P.
То, что я хочу достичь
Так что мой главный вопрос заключается. После первого запуска я сохраню массив всей файловой системы и их метаданных (данные о создании, дата изменения). После этого я хочу, чтобы демон запускался в фоновом режиме в режиме «просмотра», фактически отражая последний известный хранимый массив файловой системы с новым зацикленным. Проблема теперь в том, что когда я запускаю скрипт для тестирования, он начинает запускать мой процессор, что заставляет MacBook начинать получать икоту через некоторое время. Я хочу добавить спать между каждым шагом в каталоге «os.walk()» в моем цикле for. Мой вопрос: что такое правильное время сна? Дисковая утилита MacBook говорит, что у меня есть 183.867 папок и 1.013.320 файлов, что составляет в общей сложности 1.197.187 записей (так как файлы также являются файлами). Поэтому установка моего кода:
time.sleep(0.001)
..would приблизительно принимает это 1.2Million записи, которые будут рассматриваться в течение примерно 2 минут. Я не знаю, насколько это хорошо, и я предпочитаю делать его более динамично на основе общего количества файлов/папок.
Дополнительная функция Основываясь на моем вопросе, я заметил, что дисковая утилита OS X уже знает мои полные файлы и папки. Может ли Python получить эти данные, не делая чрезмерного цикла? Возможно, вызов функции терминала, встроенной в OS X. Таким образом, я мог бы также сохранить индикатор, если вы используете небольшой графический интерфейс для моего статуса Daemon.
Заранее благодарен!
Как предостережение, я построил скрипт python для мониторинга удаленного доступа к Windows для новых файлов (не спрашивайте). Эта вещь безумно неэффективна, и в оригинальной версии все время использовалось 70-100 процессоров, так как люди хотели «мгновенной» работы, если файл был удален. Используйте структуру уведомлений. –