Script che verifica se un file è stato modificato

3 risposte [Ultimo contenuto]
Ritratto di DeepYou
DeepYou
(Junior)
Offline
Junior
Iscritto: 13/11/2007
Messaggi: 10

Salve a tutti

Vorrei sapere se qualcuno conesce un modo per creare uno script "demone" che verifica periodicamente se lo STESSO file è stato modificato. E nel caso il file è stato modificato deve invorare un altro scritp.

Avevo pensato di farlo in Perl, ma va bene anche Sh, e magari mettere lo script in cron.

Qualcuno sa suggerirmi una soluzione????

Ritratto di pietro
pietro
(Collaboratore)
Offline
Collaboratore
Iscritto: 30/06/2005
Messaggi: 792

Sinceramente non ho capito se lo script deve solo controllare se lui stesso e' stato modificato o se sono stati modificati altri file.

Nel primo caso basta non creare lo script e nessuno potra' mai modificarlo... Wink

Nel secondo caso e' inutile reinventare la ruota: ci sono diversi software in giro che controllano l'integrita' dei file system.

Nei repository Debian ce ne sono alcuni: ti invio i link dei primi due che ho trovato in 30 secondi di ricerca:

http://packages.debian.org/etch/integrit
http://packages.debian.org/etch/samhain

Pietro

Debian Lenny on BeagleBoard

Ritratto di DeepYou
DeepYou
(Junior)
Offline
Junior
Iscritto: 13/11/2007
Messaggi: 10

Ho scritto lo script in perl che mi fa quel che vuole...

con Cron riesco ad invocarlo ogni minuto.

MA, Come posso fare per farlo girare in automatico ogni SECONDO?

Ritratto di paolo
paolo
(Webmaster)
Offline
Webmaster
Iscritto: 04/10/2004
Messaggi: 1260

Io l'avrei fatta più semplice, un md5 (o sha1 o qualsiasi funzione hash che volete) sul file, anche 1bit modificato viene riconosciuto, quindi sarebbe la cosa più veloce.

Per farlo girare "ogni secondo" non ha senso, devi avviare un processo, e tenerlo in un loop in attesa di eventi e poi killarlo quando non ne hai più bisogno.

Visto che hai scritto lo script in Perl:

http://www.webreference.com/perl/tutorial/9/3.html

Ciao

Paolo Mainardi
CTO Twinbit http://www.twinbit.it
Vice Presidente -- ILDN - Italian Linux DIstro Network