Как я могу контролировать диск ввод-вывод в конкретном каталоге?

Вы могли попробовать что-то вроде этого (как glenn jackmann примечания ниже, необходимо выйти из всех % символы):

15 11 * * * touch "/tmp/$(date +\%d-\%m-\%Y).sql"

Видеть, выполнит ли Ваш конкретный крон команду из crontab как сценарий в и себя, или если необходимо записать сценарий, который выясняет дату как строку и затем выполняет команду mysqldump.

Не выходя %, "крон" на Redhat Enterprise Linux 5.0 (я думаю) продолжал давать мне ошибки о не нахождении соответствия ). Это вызвано тем, что все после незавершенного % отправляется в стандартный вход команды.

Я также взял бы рекомендацию использовать формат даты ISO8601 (yyyy-mm-dd, который является %F) заставить имена файлов заказать по дате при лексической сортировке.

10
21.03.2011, 13:09
3 ответа

Я понимаю, что это собирается звучать и упрощенным и абсурдным, но если Вы управляете рассматриваемыми приложениями (возможно, в тестовой среде), Вы могли бы смонтировать ТОЛЬКО что каталог на собственном разделе, затем iostat, и т.д. сказал бы Вам только об этом и ничему иному на том пятне.

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

dd if=/dev/zero of=/bigdisk/LOOPFILE bs=1024m count=1024m # 1gb loopback file
mke2fs -j /bigdisk/LOOPFILE
mkdir /tmpcopy
mount -o loop /tmpcopy /bigdisk/LOOPFILE
cp -r -p $SPECIALDIR2MONITOR /tmpcopy
umount /tmpcopy
mount -o loop $SPECIALDIR2MONITOR  /bigdisk/LOOPFILE,

Это не полностью удалило бы весь конкурирующий диск ввод-вывод, но я вполне уверен iostatвывод был бы более характерен для Вашей потребности.

10
27.01.2020, 20:01

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

mkdir /tmp/replica
loggedfs /path/to/directory /tmp/replica
mycommand --root=/tmp/replica
fusermount -u /tmp/replica
3
27.01.2020, 20:01

Можно использовать inotifywait -m DIRNAME от inotify-инструментов.

2
27.01.2020, 20:01
  • 1
    -d не существует в inotifywait 3.13. Вы имеете в виду -m? –  l0b0 18.03.2011, 11:35
  • 2
    @l0b0: о, я использую 3.14 от мерзавца repo.прошу прощения. Но страница справочника указывает, что совпадает с -m за исключением выполнения в фоновом режиме и требования outfile. –  Tobias Kienzler 18.03.2011, 11:38
  • 3
    также -r могло бы быть полезным –  Tobias Kienzler 18.03.2011, 11:40
  • 4
    Протестированный это. Я сожалею о недоразумении, но мне не интересно, в котором к файлам (или даже сколько файлов) получили доступ, а скорее сумма ввода-вывода. –  l0b0 18.03.2011, 11:41
  • 5
    Отметьте, это является определенным для Linux. BSDs имеют kqueue и pnotify системные вызовы, но я не знаю, делают ли они точно, что запрашивает автор. –  Shawn J. Goff 18.03.2011, 14:03

Теги

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