[OSM-Devserver] incron und aio

Christoph Wagner freemaps.osm at googlemail.com
Do Apr 1 09:35:47 CEST 2010


Sven Geggus schrieb:

>> Warum hat er heute morgen denn /osm/garmin/aio/muppdeht.sh nicht ausgeführt?
> 
> Keine Ahnung.
> 


Boah, ich glaub ich hab jetzt endlich das Problem mit incron verstanden.
Ich werds mal versuchen zu erklären, falls noch jemand das Problem hat.

Ich nehm mal als Beispiel das Europefile der geofabrik auf das ich triggern möchte.
Die Zeile in der incrontab sieht so aus:

/osm/geofabrik-extrakte/europe.osm.bz2 IN_CLOSE_WRITE /osm/garmin/aio/muppdeht.sh

Also wenn der Inode mit dem Namen /osm/geofabrik-extrakte/europe.osm.bz2 schreibend geschlossen wird, führe das Skript /osm/garmin/aio/muppdeht.sh aus.
Wenn man das so einträgt, funktioniert das genau einmal!

Das Problem ist, dass die zu triggernde Datei laut Jochen durch umbenennen einer anderen Datei hergestellt wird, also vermutlich irgendwie so:

mv new_europe.osm.bz2 /osm/geofabrik-extrakte/europe.osm.bz2

Zwar wird jetzt das IN_CLOSE_WRITE Event auf dem alten Inode getriggert (warum auch immer), aber der Name /osm/geofabrik-extrakte/europe.osm.bz2 verweist jetzt auf einen neuen Inode, der nicht mehr überwacht wird!
Damit der incond den neuen Inode registriert muss man einen reload der incrontab erzwingen:

incrontab -d

Das heißt das hängt man einfach an sein Skript hinten an und schon klappt das das nächste Mal auch wieder!

Noch so ein paar Dinge, die ich bemerkt habe:

Würde ich die Standardausgabe von meinem Skript umleiten wollen, funktioniert das eher nicht so:

/osm/geofabrik-extrakte/europe.osm.bz2 IN_CLOSE_WRITE /osm/garmin/aio/muppdeht.sh >> ausgabe.log

Das blöde ist, dass die >> nicht als Umleitungsoperator interpretiert werden, sondern einfach mal so als Argument an das Kommando übergeben werden.
Also am besten dann vom Skript aus die Umleitungen regeln.

Vermutlich kann man auch ne bash starten und also Argument das ganze Kommando übergeben, aber das ist alles Geschmackssache.

Hoffe ich konnte n bissel helfen.
Bei mir scheints jetzt zu klappen.


Grüße
Christoph

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 197 bytes
Beschreibung: OpenPGP digital signature
URL         : <https://lists.openstreetmap.de/pipermail/devserver/attachments/20100401/b64e2ea6/attachment-0001.pgp>