Ereignisauslösung nach SCP Datentransfer

Tikonteroga

Erfahrenes Mitglied
Hallo,

ich habe einen Fall bei dem über WLAN eine große Menge von Daten (1 GB) in Form von Dateien (ZIP, LOG, ...) über SCP an einen Server übertragen werden.

Sobald die Datenübertragung abgeschlossen ist, möchte ich gerne ein Programm/Skript zum Verarbeiten der übertragenen Daten ausführen, an das die übertragenen Dateien bzw. das Verzeichnis der Dateien als Parameter übergeben wird.

Gibt es bei einem SCP-Server die Möglichkeit bei bestimmten Ereignissen ein oder mehrere Programme auszuführen, so wie das bei den Hooks eines SVN-Servers möglich ist ?

Über Hinweise würde ich mich sehr freuen. Falls ihr detailiertere Informationen zur Ausgangssituation benötigt, lasst es mich bitte wissen.
 
Wenn die die Daten per SCP überträgst, dann verbindest du dich nicht zu einem SCP-Server sondern zu einem SSH-Server, somit kannst du auch Befehle usw. per SSH auf dem Zielhost ausführen.
 
Hallo,

danke für die Antwort.

Hier sehe ich jetzt zwei Probleme. Den Client, der die Daten über SCP/SSH auf den Server hochläd, kann ich nicht verändern. Der Server steht jedoch unter meiner Kontrolle. Ist es aus Sicherheitsgründen nicht gefährlich, wenn ein Client ein Skript auf einem Server ausführen kann?
 
du kannst ja folgendes auf deinem client machen

- erst per scp die dateien hochkopieren
- dann per ssh -lUSER HOST BEFEHL deine verarbeitung starten

Wenn du das ganze in ein Script packst, dann kannst du sogar errorhandling usw. einbauen.
 
Also der Client, der den Upload der Daten auf den Server initiert, sollte auf dem Server keine Skripte starten können. Das werde ich so nicht realisieren können, weil ich da glaube ich Ärger mit dem Verantwortlichen bekommen würde ... :)

Der Server sollte das Skript unter seiner vollen Kontrolle startet können. Hier hatte ich gehofft, dass es hier ein Event gibts, dass ausgelöst wird, wenn Daten übertragen werden. Die Pfade der übertragenden Dateien, sind innerhalb des Events als Parameter enthalten.

Beim Subversion-Server gibt es z. B. diese Hooks. Wenn z. B. ein Checkin von neuen Dateien durchgeführt wird oder wurde, wird automatisch eine ausführbare Datei gestartet, die mit einem bestimmten Namen in einem bestimmten Verzeichnis liegen muss und der über eine standardisierte Schnittstelle Parameter übergeben werden. So einen Mechanismus suche ich.

Aber vielen Dank für deine Vorschläge.
 
Hallo,

also diesen Lösungsweg habe ich auch schon analysiert.

Für eine sehr gute Lösung benötige ich aber genau ein Ereignis, dass dann ausgelöst wird, wenn die Datenübertragung abgeschlossen, die Verbindung getrennt und die Daten auf dem Server abgelegt wurden.

Wenn ich das Verzeichnis überwachen würde, müsste ja für jede einzelne Daten ein Event ausgelöst werden, die kopiert, verschoben oder gelöscht wird. Da müsste man dann wohl einen aufwändigen Zustandsautomat implementieren ...

Ich halte mir diese Alternative aber im Hinterkopf, falls sich zeigt, dass die andere Lösung so nicht möglich ist.
 
Kannst du auf dem Server ein Skript (z.B. in Perl) laufen lassen? Dann kannst du das Verz. einfach permanent überwachen und wenn z.B. eine Semaphore übertragen wurde (also datei.zip + datei.zip.sem) eine Aktion auslösen.

Sowas habe ich mal in Perl erstellt... wenn Interesse besteht, einfach melden.
 
Hallo,

also die Daten, die übertragen werden, sind eigentlich bereits festgelegt bzw. ich müsste das Image bzw. die Firmware von über 100 Embedded Systemen Akt
 
Hallo,

an den Dateien musst du ja auch nichts ändern, die Semaphore war lediglich gedacht um dem Script mitzuteilen das die Übertragung der eigentlichen Datei abgeschlossen ist.

Also wenn du auf dem Zielsystem (deinem Embedded) nichts ausführen kannst, dann bin ich auch ratlos *sorry*
 
Zurück