monitor disk write por diretório

1

Estou tentando rastrear onde gravações excessivas em disco estão vindo, seja por correio, digitação, logs ou outra origem. Existem cerca de 75 contas no servidor, algumas ativas e outras não.

Existe algum tipo de comando de E / S de disco que eu possa executar que especificará o DIRETÓRIO (s) para o qual gravações de disco estão acontecendo? Se é um db write, eu esperaria ver isso em /var/lib/mysql/that_database_name

- ADIÇÃO -

Eu me lembro vagamente de há 2 anos atrás eu executei um comando que era similar a um tail -f onde eu estava assistindo as gravações, e eu acho que especificou a pasta. Se eu estava seguindo um log de gravação em disco (se tal coisa existe), então é local ou o seu acesso neste formato iria realizar o que eu estou querendo.

    
por Oliver Williams 06.04.2017 / 10:01

1 resposta

1

Você pode estar pensando em fatrace , que pode monitorar todas as gravações em um sistema de arquivos, por exemplo:

$ sudo fatrace -f W 
chrome(19909): W /home/meuh/.config/google-chrome/Default/Current Session
bash(2777): CW /home/meuh/.bashhistory
emacs(2100): CW /home/meuh/bin/emacs/.emacs.desktop
auditd(711): W /var/log/audit/audit.log
rsyslogd(762): W /var/log/secure

O -f W restringe a saída a qualquer operação de gravação, listando executável, pid e arquivo escrito.

Outra possibilidade é o iosnoop das perf-tools de Brendan D. Gregg, que dá baixa informações de nível em blocos gravados em um disco:

$ sudo perf-tools-master/bin/iosnoop
Tracing block I/O. Ctrl-C to end.
COMM         PID    TYPE DEV      BLOCK        BYTES     LATms
/usr/bin/mon 31456  R    8,0      9741888      4096       2.14
/usr/bin/mon 31456  R    8,0      12904784     4096       1.43
jbd2/sda3-41 416    WS   8,0      130618232    65536      1.89
jbd2/sda3-41 416    WS   8,0      210006528    8192       1.94
<...>        288    WS   8,0      129710104    61440      1.85
<idle>       0      WS   8,0      129710224    4096       0.36
cat          32111  WS   8,0      10443000     4096       0.35

Outra possibilidade, se você quiser apenas assistir alguns conjuntos de arquivos é inotifywait , por exemplo:

$ inotifywait -m -e modify -r /tmp
Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
/tmp/ MODIFY myfile

O -r é recursivo nos diretórios fornecidos. Isso é caro para a configuração e os usuários são limitados por padrão a 8192 relógios, mas você pode alterar isso em /proc/sys/fs/inotify/max_user_watches .

    
por 06.04.2017 / 18:46