Ordnerprüfung ob Datenzugang beendet
1. Ist es via Powershell möglich einen Ordner zu überwachen ob noch Daten zugeführt werden ?
Beispiel :
Ordner X wird auf Dateneingang überwacht, ersten wenn keine Daten mehr eingehen wird nach x Sekunden Wartezeit eine weitere Aktion ausgelöst.
2. Ist es via Powershell möglich das ein Port auf dem auf Dateneingang "gehorcht" wird pausiert wird bis er via Powershell wieder "horcht" ? [Nicht über Firewallregeln]
Beispiel :
Ordner X wird auf Dateneingang überwacht, ersten wenn keine Daten mehr eingehen wird nach x Sekunden Wartezeit eine weitere Aktion ausgelöst.
2. Ist es via Powershell möglich das ein Port auf dem auf Dateneingang "gehorcht" wird pausiert wird bis er via Powershell wieder "horcht" ? [Nicht über Firewallregeln]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4263724304
Url: https://administrator.de/contentid/4263724304
Ausgedruckt am: 17.11.2024 um 03:11 Uhr
15 Kommentare
Neuester Kommentar
Hallo,
zu 1: Jain. Prinzipiell schon, nur wann endet die Übergabe? Gehören die Dateien zusammen und dürfen nicht zerrissen werden? Z.B. mehrere Leitrechnerdaten o.ä. Man kann auf LastWriteTime o.ä. prüfen. Nur wenn man dann pauschal x-Sekunden wartet, können wieder neue Daten rein kommen. Ich hätte an der Stelle ein Problem mit der Logik an der ganzen Sache!
zu 2: Ähm, waaaaaassssssssssssssss ?
Ohne Firewall sprichst du mehr von einen Socket einer Anwendung/ Dienst Whatever? Um sowas zu machen, müssten man die Anwendung oder Dienst dahinter beenden und neu starten! Wenn eine Applikation wie FTP läuft, ist auch der Port verfügbar. Schaltet man das kurz ab, ist der Port weg.
mfg Crusher
zu 1: Jain. Prinzipiell schon, nur wann endet die Übergabe? Gehören die Dateien zusammen und dürfen nicht zerrissen werden? Z.B. mehrere Leitrechnerdaten o.ä. Man kann auf LastWriteTime o.ä. prüfen. Nur wenn man dann pauschal x-Sekunden wartet, können wieder neue Daten rein kommen. Ich hätte an der Stelle ein Problem mit der Logik an der ganzen Sache!
zu 2: Ähm, waaaaaassssssssssssssss ?
Ohne Firewall sprichst du mehr von einen Socket einer Anwendung/ Dienst Whatever? Um sowas zu machen, müssten man die Anwendung oder Dienst dahinter beenden und neu starten! Wenn eine Applikation wie FTP läuft, ist auch der Port verfügbar. Schaltet man das kurz ab, ist der Port weg.
mfg Crusher
Wenn Du es verstanden hast, dann ist das okay.
Was für eine Aktion soll das sein?
Trotzdem: Wie ermittelt man hier das größte zeitliche Gap? Taskplaner kann auch jede Minute was ausführen. Oder man lässt das PS Script endlos weiterlaufen. Ist ganz einfach nur auflisten, sortieren und aktuelle Uhrzeit mit LastWriteTime vrergleichen. Dann wären wir schon fast fertig. Im letzten Schritt prüfen ob der Abstand in Sekunden groß genug und ist Befehl abfeuern.
Deine 2. Frage ist also schon von selber beantwortet. Wenn man nicht via Command-Line, API oder DLL da ran kann, oder sogar ein GUI Button fehlt, hat man da keine Chance.
Man könnte das Ganze ggf. ncoh umstricken, in dem man die Daten in einen anderen Ordner einlaufen lässt. Und dann von dort in den Ordner, wo die Anwendung drauf lauscht. Macht aber nur Sinn, wenn man die Daten vorher kontrollieren oder manipulieren will.
Wenn Du dir der Peaks bei den einlaufenden Daten bewusst bist, sollte es auch mit einer Schleife gehen. Abstand in Sekunden kann man jederzeit anpassen.
Nichth vergessen, dass sowas 10 mal und mehr parallel laufen kann. Selbstgebaute Lock-File und Prüfung verhindert das. Sonst hätte man nur Chaos.
Hierwie ich das meine. Genauso kann man auch Lock-Datei und die Daten vergleichen. Lock Vergleich nehm ich immer, wenn ich die automatisch aufheben will. Ansonsten kann man die auch manuell raus nehmen. Wenn wir uns nun innerhalb der Schleife bewegeen, kann die Überwachung auch zu Zeit Y beenet werden. Via Taskplaner dann einfach neu starten.
Dazu müsste man noch wissen, von wann bis wann die Überwwachung sein soll. 1 Pause am Tag wäre nicht verkehrt.
Trotzdem: Wie ermittelt man hier das größte zeitliche Gap? Taskplaner kann auch jede Minute was ausführen. Oder man lässt das PS Script endlos weiterlaufen. Ist ganz einfach nur auflisten, sortieren und aktuelle Uhrzeit mit LastWriteTime vrergleichen. Dann wären wir schon fast fertig. Im letzten Schritt prüfen ob der Abstand in Sekunden groß genug und ist Befehl abfeuern.
Deine 2. Frage ist also schon von selber beantwortet. Wenn man nicht via Command-Line, API oder DLL da ran kann, oder sogar ein GUI Button fehlt, hat man da keine Chance.
Man könnte das Ganze ggf. ncoh umstricken, in dem man die Daten in einen anderen Ordner einlaufen lässt. Und dann von dort in den Ordner, wo die Anwendung drauf lauscht. Macht aber nur Sinn, wenn man die Daten vorher kontrollieren oder manipulieren will.
Wenn Du dir der Peaks bei den einlaufenden Daten bewusst bist, sollte es auch mit einer Schleife gehen. Abstand in Sekunden kann man jederzeit anpassen.
Nichth vergessen, dass sowas 10 mal und mehr parallel laufen kann. Selbstgebaute Lock-File und Prüfung verhindert das. Sonst hätte man nur Chaos.
Hierwie ich das meine. Genauso kann man auch Lock-Datei und die Daten vergleichen. Lock Vergleich nehm ich immer, wenn ich die automatisch aufheben will. Ansonsten kann man die auch manuell raus nehmen. Wenn wir uns nun innerhalb der Schleife bewegeen, kann die Überwachung auch zu Zeit Y beenet werden. Via Taskplaner dann einfach neu starten.
Dazu müsste man noch wissen, von wann bis wann die Überwwachung sein soll. 1 Pause am Tag wäre nicht verkehrt.
Oh man. Sind wir nun fertig oder was?
Du machst mich fertig! Hier warst du doch auch oder?
Wir sehen da eine Schleife, Datumsvergleich etc. Was willst du ?????????
Sollen wir jetzt schreiben oder reicht dir das? Du hast ja scheinbar schon gescripted. Das sah doch ganz gut aus.
Wenn du da ein Verzeichnis löschen willst, kannst auch vergleichen! Wie @emeriks schon indirekt sagte: Wir brauchen wenn mehr!
Einige haben keine Ahnung und fangen mit Batch an. Bei dir sehe ich da scheinbar mehr. Also was genau willst du nun konkret?
Powershell? JA
Schleife und Prüfung: JA geht
Aufhübschen ob Task schon läuft: JA geht auch mit PS
Halbmanuell auswerten? JA geht auch. Wenn du scheinbar weißt, was du tust und wie die Daten rein kommen kann man das aus der Hüfte schießen.
Aktion ausführen? JA auch das geht? Welche denn?
Programm/ Socket beenden/ starten: JAIN. Nur wenn der Programmierer es so ähnlich vorgesehen hat!
Du machst mich fertig! Hier warst du doch auch oder?
Wir sehen da eine Schleife, Datumsvergleich etc. Was willst du ?????????
Sollen wir jetzt schreiben oder reicht dir das? Du hast ja scheinbar schon gescripted. Das sah doch ganz gut aus.
Wenn du da ein Verzeichnis löschen willst, kannst auch vergleichen! Wie @emeriks schon indirekt sagte: Wir brauchen wenn mehr!
Einige haben keine Ahnung und fangen mit Batch an. Bei dir sehe ich da scheinbar mehr. Also was genau willst du nun konkret?
Powershell? JA
Schleife und Prüfung: JA geht
Aufhübschen ob Task schon läuft: JA geht auch mit PS
Halbmanuell auswerten? JA geht auch. Wenn du scheinbar weißt, was du tust und wie die Daten rein kommen kann man das aus der Hüfte schießen.
Aktion ausführen? JA auch das geht? Welche denn?
Programm/ Socket beenden/ starten: JAIN. Nur wenn der Programmierer es so ähnlich vorgesehen hat!
Powershell Objekte können verglichen werten und auch eine Zeitspanne lässt sich auf alles runterbrechen: Tage, Stunden, Minuten, Sekunden. Würde da immer NICHT selber rechnen oder Minuten als INT einsetzen. Es ist schon alles da. Wenn man Objekte mit Datum vergleicht hat man alles zur Hand.
Pausieren geht nur, wenn es die Schnittstelle zulässt! Im blödesten Fall sogar mit GUI und sowas wie AutoIT. Das wäre aber arg lästig. Ansonsten läuft alles weiter.
Es gebe nur die Alternative: 2x Ordner!
1x Sammelordner
1x verabeiten.
Du verschiebst dann von A nach B und es wird alles weiterhin aufgenommen.
Ähm was für ein Datenzugang! Bei welchen Meilestein sind wir! Meinst du, was rein kommt an Files oder was deine weiteren Aktionen in die DB o.ä. schieben? Ich verstehe gerade nicht, wo du da bist. Sonst wäre es doch egal. Dauert halt länger als 40 Sekunden. Man könnte es monitoren über Log-File oder E-Mail. Das eien Alarm Mail ausgelöst wird. Hab ich bei usn für DaSi und andere Prozesse.
Pausieren geht nur, wenn es die Schnittstelle zulässt! Im blödesten Fall sogar mit GUI und sowas wie AutoIT. Das wäre aber arg lästig. Ansonsten läuft alles weiter.
Es gebe nur die Alternative: 2x Ordner!
1x Sammelordner
1x verabeiten.
Du verschiebst dann von A nach B und es wird alles weiterhin aufgenommen.
Ähm was für ein Datenzugang! Bei welchen Meilestein sind wir! Meinst du, was rein kommt an Files oder was deine weiteren Aktionen in die DB o.ä. schieben? Ich verstehe gerade nicht, wo du da bist. Sonst wäre es doch egal. Dauert halt länger als 40 Sekunden. Man könnte es monitoren über Log-File oder E-Mail. Das eien Alarm Mail ausgelöst wird. Hab ich bei usn für DaSi und andere Prozesse.
Wenn du ein Zeitproblem hast kannst du auch protokollieren und dies als Leitdatei abarbeiten.
Oder "in progress" so abbilden, dass du genaue jene Dateien in einen Array packst. Ggf. wegen gleicher Dateinamen vorher umbenennst und mit UID oder sowas den Namen ersetzt.
Egal was da einströmt, dann weißt du zumindest wo du gerade stehst. UID ist immer eindeutig. So Dinge wie Copy/ Move oder Rename gehen ja auch schnell. Zumindest wenn die File nicht gelocked ist.
Du kannst dir damit ggf. die Sachen so zurecht legen, dass später nichts kollidieren kann.
Stichtwort "Leitdatei" und der Ordner ist quasi egal.
Oder "in progress" so abbilden, dass du genaue jene Dateien in einen Array packst. Ggf. wegen gleicher Dateinamen vorher umbenennst und mit UID oder sowas den Namen ersetzt.
Egal was da einströmt, dann weißt du zumindest wo du gerade stehst. UID ist immer eindeutig. So Dinge wie Copy/ Move oder Rename gehen ja auch schnell. Zumindest wenn die File nicht gelocked ist.
Du kannst dir damit ggf. die Sachen so zurecht legen, dass später nichts kollidieren kann.
Stichtwort "Leitdatei" und der Ordner ist quasi egal.
Moin @Crashzero,
ich habe mal versucht alles zu verstehen, aber was ich mich die ganze zeit frage (vielleicht überlesen)
- um was für einen dienst handelt es sich der die Daten liefert
- wie kommen die Daten (internet z. b. FTP, oder Lokales Netzwerk)?
- Wenn es ein Spezielles Produkt/Programm ist was die Daten Liefert dann nenne doch den Namen?
- Um welche Größenordnung reden wir hier (KB, MB, GB, TB)?
Warum macht ihr das unter Windows, hat es bestimmte gründe?
ich habe mal versucht alles zu verstehen, aber was ich mich die ganze zeit frage (vielleicht überlesen)
- um was für einen dienst handelt es sich der die Daten liefert
- wie kommen die Daten (internet z. b. FTP, oder Lokales Netzwerk)?
- Wenn es ein Spezielles Produkt/Programm ist was die Daten Liefert dann nenne doch den Namen?
- Um welche Größenordnung reden wir hier (KB, MB, GB, TB)?
Warum macht ihr das unter Windows, hat es bestimmte gründe?