monitoraggio delle modifiche ai file + processo di accesso ai file


19

Vorrei vedere cosa sta succedendo nelle cartelle del mio server di app, ovvero quali file sono stati modificati dal processo x o quali *.warfile sono stati modificati (sostituiti / creati) negli ultimi x minuti.

Esiste uno strumento in Linux per aiutare con questo?


Ciao prova a dare un'occhiata a questa guida per configurare auditd per monitorare directory e file xmodulo.com/how-to-monitor-file-access-on-linux.html
Sifungurux

1
Sono arrivato a questa domanda tramite la ricerca di Google, ma ho trovato la mia risposta qui: unix.stackexchange.com/questions/18844/…
Quentin Skousen

Dai un'occhiata a SystemTap. uselessuseofcat.com/?p=281
steve

Risposte:



14

Strace (come indicato sopra) è un modo per verificare le azioni di un software in esecuzione specificato.

Alcuni comandi simili watch find dir/ -mmin 1possono anche aiutare a controllare le modifiche dell'ultimo minuto in alcune directory.

A seconda di cosa stai esattamente cercando, inotify-tools è probabilmente un altro strumento di scambio qui.

Ad esempio, inotifywait -mr dir/monitora le modifiche nella directory specificata e fornisce immediatamente un feedback su qualsiasi applicazione che tenta di aprire / leggere / scrivere / chiudere un file. Tuttavia, inotify non ti dà feedback su quale applicazione o processo acceda al file - questo è qualcosa che strace fa.

Tieni presente che il monitoraggio a livello di sistema è di solito di utilità limitata per il software java in esecuzione in alcuni ambienti del contenitore dell'applicazione, poiché vedi solo il contenitore (ad esempio Tomcat), ma non l'applicazione effettiva (ad esempio .war)) che interagisce con il sistema.


8

Puoi ottenere informazioni su quali file accedono per processo tramite lsof :

 lsof -n -p `pidof your_app`

E viceversa, puoi ottenere il pid del processo che scrive / legge in alcuni file:

 lsof -n -t file

6

È possibile utilizzare straceper monitorare tutte le chiamate di sistema di un processo, che include tutto l'accesso ai file.

All'avvio di un programma:

$ strace ./myserver

puoi anche collegare lo strace a un processo in esecuzione tramite il suo PID:

$ ps aux | grep myserver
me      1859  0.0  0.0  25288   424 ?        Ss   Sep02   0:00 myserver
$ strace -p 1859

sarebbe bello monitorare anche per cartella non per PID, grazie. btw strace -p PID funziona per me in Ubuntu.
Martin V.,

0

watch find dir/ -mmin 1 non ha funzionato per me, quello che ha fatto è stato semplicemente copiare e diff:

cp -r dir /tmp/olddir
# initialize/whatever
diff -r dir /tmp/olddir

È piuttosto dispendioso in termini di risorse, ma mostra tutti i cambiamenti tra lo snapshot e il difftempo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.