Назад | Перейти на главную страницу

Как я могу узнать, что крутит мой диск?

Я включил "spindown" на одном из дисков моего Linux-сервера, доступ к которому осуществляется только клиентом BitTorrent - это означает, что когда у меня нет запущенных торрентов, ничто другое не должно обращаться к диску и выводить его из спящего режима (верно? ).

Но что-то заставляет диск раскручиваться каждые 15 минут или около того. Как я могу отследить преступника-мошенника?

Спасибо за любой отзыв!

В Linux недавний fanotify syscall включил красивую утилиту под названием fatrace информирует о том, какой процесс к какому файлу обращается либо для всей системы, либо для конкретного раздела. Определенно мой любимый инструмент для таких вещей:

deluged(6542): R /usr/share/GeoIP/GeoIP.dat
rsyslogd(1737): W /var/log/syslog
rsyslogd(1737): W /var/log/kern.log

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

Краткий ответ на вашу проблему:

echo 1 > /proc/sys/vm/block_dump

он будет создавать сообщения в системном журнале, например:

Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340136 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 4335136 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 15505568 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340160 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340168 on dm-4

Я использовал простую команду ls

ПРИМЕЧАНИЕ: убедитесь, что системный журнал отключен или записан на ramdisk (тип: tmpfs), прежде чем делать это, потому что (цитата): «ваша система может попасть в цикл обратной связи, где syslogd вызывает активность диска, это вызывает вывод ядра, и это заставляет syslogd делать больше дисковой активности "

Я рекомендую смонтировать / tmp как ramdisk, а затем настроить ведение журнала в / tmp / syslog. Это в / etc / fstab (и перезагрузка) сделает:

none /tmp tmpfs defaults,size=256M 0 0

Я использовал iotop чтобы выяснить, что использует диск. На веб-сайте у вас должно быть установлено «Ядро Linux ≥ 2.6.20 с включенными опциями TASK_DELAY_ACCT и TASK_IO_ACCOUNTING».

Похоже, вас интересует только один конкретный диск. Вы можете подумать о написании сценария, который будет регулярно проверять с помощью lsof или fuser доступ к этому диску / разделу.

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

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

Вы должны уметь использовать Аудит Linux чтобы добавить наблюдение за точкой монтирования диска, а затем отслеживать журналы с помощью ausearch после события, чтобы узнать, какой файл был прочитан или записан (если есть), и какой процесс это сделал, аудит может отслеживать чтение, запись, выполнение и изменения атрибутов в любой файловой системе (если она поддерживается в вашей системе - так должно быть).

Может ты мог бы использовать Incron который использует inotify для запуска команд в зависимости от активности файловой системы. Затем вы могли бы посмотреть точку монтирования и использовать incron для запуска lsof, чтобы посмотреть, какой процесс обращается к ней.

Легко проверить, что раскручивает ваш диск:

перейдите в каталог смонтированного диска, для меня это / media / disk0 / transfer

затем вы выполняете: sudo fatrace -c

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

df (54956): CO / media / disk1 bash (55025): O / media / disk1 bash (55025): RC / media / disk1 bash (55026): O / media / disk1 bash (55026): RC / media / disk1