[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: polling mit der bash



* Michael Will <micha_will@gmx.net> wrote:
> wie kann ich es mit der Bash bewerkstelligen, dass 
> sobald eine bestimmte Datei verändert wurde, ein
> Vorgang ausgelöst wird? 
> Ich dachte mir das als ein ständig laufendes Bashskript,
> welches in einer Endlosschleife die betreffende
> Datei auf Veränderung überprüft. 

Was genau willst Du denn machen? Liegt die Datei alleine in einem
Verzeichnis bzw. kannst Du Sie alleine in ein Verzeichnis legen, dann
schaue Dir mal dnotify an.

 ,-----[ apt-cache show dnotify ]
|  ...
| Description: Execute a command when the contents of a directory change
|  dnotify is a simple program based on Linux kernel 2.4.19+'s dnotify
|   API. 
|  ...
 `--------------

> while true;
> do
>  zeitstempel=`date +%s`
>  aenderung=`find . -maxdepth 1 -name "datei.xy" -printf '%C@'`
>  differenz=`echo $zeitstempel-$aenderung|bc`
>  if [$differenz -le 2 ]
>   then
>    hier kommt die eigentliche Aktion!
>  fi
>  sleep 1
> done

Selbst falls die Datei nicht einzeln in einem Verzeichnis liegt, lässt
sich durch eine Kombination Deines Skriptes und dnotify zumindest das
ständig laufende find vermeiden.

- sebastian



Reply to: