PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Neue Datei in Ordner -> Script starten



martinsuse91
24.05.06, 22:21
Hallo,

Ich habe ein SMB-Share in das Datein reinkopiert werden sollen. Wenn eine neue Datei hineinkopiert wird, soll ein Script ausgeführt werden und ein Parameter übergeben werden, der Dateiname.
Also "script.sh dateiname". Wie mache ich diesen "Autostart"?

Danke, Martin

tschloss
25.05.06, 10:30
Am schönsten wäre es, wenn man irgendeinen Event abgreifen könnte, den Linux erzeugt, wenn ein Verzeichnis angefaßt wird. Weiss aber nicht, ob es so was gibt.

Die primitivere Methode ist eine regelmäßige Überprüfung via Skript.
ENtweder in einer Schleife oder via Cron bis zu minütlich.

Kern-Befehl könnte find oder ls sein.

Problem dabei: Du musst evtl. eine kleine Pufferliste mitführen, um zu tracken, was du schon erfasst hast und was nicht.

Alles ein Frage des Timings: es hängt halt auch davon ab: wie häufig kommen neue Dateien, wieviel später kann der Folgeprozess max. starten und räumt der Folgeprozess die Datei ab oder bleibt sie liegen.

Vielleicht wirst du etwas genauer und sagts auch, was du erreichen willst.

Greetz
Thomas

martinsuse91
25.05.06, 13:41
Es geht um einen Virenscanner. Ich scanne die Dateien mit "clamscan DATEI" durch und bekomme ein Ergebnis, in dem die Dateinamen mit "NAME ok" drinstehen. Ich habe bisher noch keinen Virus gehabt, deshalb weiß ich nicht, was bei Virusbefall gemacht wird. Am besten fände ich es, wenn die sauberen Dateien in das Unterverzeichnis "sauber" verschoben würden, die anderen in "Infiziert". Somit würden die Dateien auch nicht doppelt gescannt.

Ich denke ich mache dann ein "foreach (ls) -> clamscan DATEI | grep Datei
if (ok) -> mv DATEI clean, else mv DATEI infiziert.

Ich habe keine Ahnung, wie ich Schleifen und Entscheidungen in einen Shellscript machen kann, ich hofe es ist klar, wie das oben gemeint ist.

PS: Hier wurde mein Problem anscheinend schon beantwortet: http://www.linuxforen.de/forums/showthread.php?p=1366309#post1366309

Martin

martinsuse91
25.05.06, 14:28
clamscan 2>&1 fehler.txt | grep && mv sauber/ || mv infiziert/

Damit kann der Filtern. Allerdings brauche ich nun noch was, womit ich die ausgaben von LS auswerten kann.