bassi79
Goto Top

FTP-Server Dateneingang melden z.B. per Email

Hallo,
ich z.Zt. die Testversion des FTP-Server Serv-U von RhinoSoft laufen und werde mir diesen evtl. in der Home-Edition zulegen.

Betriebssystem: WinXP pro - SP3
HD: 3 x 160 GB
1. HD: C: nur System
2. HD: Y: Daten zur Bearbeitung (keine Freigabe)
3. HD: Z: Daten zur Übertragung (Freigabe für FTP-Server)

Momentan beschäftigt mich das Problem, wenn Kunden (ca. 30) ihre Daten in ihren Verzeichnissen (auch ca. 30 - jeder Kunde hat sein eigenes Verzeichnis) ablegen, muß ich immer die in den Logs ansehen was sich getan hat.
Dies möchte ich automatisieren, d.h. sobald der Kunde sich vom FTP-Server abmeldet öffnet sich ein Fenster bzw. wird eine Mail gesendet, in welcher der Kundenname steht.
Super wäre natürlich wenn die Daten sobald der Kunde sich abgemeldet hat, vom Laufwerk des Servers in ein anderes Laufwerk verschoben werden und dann diese Meldung erscheinen würde.

Leider übersteigt dies meine PC-Kenntnisse und hoffe das ihr mir helfen bzw. den richtigen Weg weisen könnt.

Auf Routinen welche alle 5 Minuten den Verzeichnisinhalt vergleicht würde ich gerne auf Grund der Performence verzichten - insofern dies geht.

Vielen Dank für Eure Antworten.

Beste Grüße,
bassi79

Content-ID: 109627

Url: https://administrator.de/contentid/109627

Ausgedruckt am: 23.11.2024 um 00:11 Uhr

60730
60730 21.02.2009 um 10:29:05 Uhr
Goto Top
Servus,,

nimm etwas wie Filezilla Server.

Was gut klappt - ist das stündliche abklappern der Logfiles - und danach dann per Commandmailer wie Blat oder Bmail oder Postie Mails zu versenden.

Und wegen deinem Automatismus - editiere deinen Beitrag bitte so, das ich / wir zwischen externem FTP User und den anderen unterscheiden können.

Dann kann man auch gezielter helfen und muß nicht "pauschjal" bleiben.

gruß
bassi79
bassi79 21.02.2009 um 11:13:45 Uhr
Goto Top
Hallo Timo,


nimm etwas wie Filezilla Server.


Ich möchte eigentlich nicht wechseln, da für einen späteren Zeitpunkt evtl. das Upgrade auf die Corporate-Edition in Bezug auf SFTP etc. geplant ist. Auch weil viele Kunden nichts installieren müssen und den internen WebClient verwenden können.

Was gut klappt - ist das stündliche abklappern der Logfiles -
und danach dann per Commandmailer wie Blat oder Bmail oder Postie
Mails zu versenden.

Wie ist das mit sündlichen abklappern gemeint ? Danke, die von dir genannten Programme werde ich gleich mal unter die Lupe nehmen.


Und wegen deinem Automatismus - editiere deinen Beitrag bitte so, das
ich / wir zwischen externem FTP User und den anderen unterscheiden
können.

Ist geändert.

Gruß,
bassi79
60730
60730 21.02.2009 um 11:37:10 Uhr
Goto Top
Moin nochmal,

du solltest dir das bitte nochmal ganz genau durch den Kopf gehen lassen.

In meinen Augen wird das nüx.

Server= XP Pro & User >9
Filezilla kann übrigens auch SFTP - für "umme"
Webdav ist auch "geschenkt" - welcher "FTP" oder OS Server dahinter steht das kriegt keiner mit.

An deiner Stelle rudere um und mach das mit Debian / Linux und irgendeinem FTP Server.
Aber da sind wir dann schon wieder meilenweit weg von deiner Frage.
Nur solltest du dir das mit den 30 Usern und XP- nochmal durchlesen.

Sorry - aber es geht leider nicht.

gruß
bassi79
bassi79 21.02.2009 um 14:25:21 Uhr
Goto Top
Hallo Timo,

irgendwie reden wir total aneinder vorbei.

Das Betriebssys habe ich mit angegeben, damit keine Script-Vorschläge etc. für Mac oder Linux gegeben werden.

Mein FTP-Server ist ein Programm (Rhinosoft Serv-U), welches unabhängig der zulässigen Verbindungen von XP arbeitet, wie FileZilla überigens auch. Was du meinst (Server= XP Pro & User >9) ist was ganz anderes und hat damit nichts zutun.

Als ich im ersten Posting User geschrieben hatte, hat sich das auch den Kunden bezogen, der über die FTP-Software zugreift und nicht auf die User welche am PC bzw. LAN hängen.


Evtl Frage ich mein Problem etwas verwirrend dargestellt. Deshalb nochmal kurz der Ablauf.

Ein Kunde überträgt Dateien mittels FTP-Client-Software (z.B. mit FileZilla oder WinSCP) in ein Verzeichnis auf Laufwerk Z:. Danach trennt er in seiner Software die Verbindung zu meinem FTP-Server.

Die Log.txt meiner FTP-Server-Software speichert:
Datum, Uhrzeit, Benutzer (Kunde) login, IP-Adresse, die Dateinamen der übertragenen Dateien und Benutzer (Kunde) logout

Anhand dieser Log.txt sehe ich, wer, wann, welche Dateien übertragen hat. Gehe in das entsprechende Verzeichnis auf Laufwerk Z: und verschiebe die Daten nach Laufwerk Y:

Nun möchte ein Script scheiben (bzw. hat jemand das schon) welches mir eine Meldung (z.B. mit net send) anzeigt oder eine Email schickt, das Kunde XYZ um UHRZEIT folgende Dateien übermittelt hat und die übertragenen Dateien automatisch in das Laufwerk Y: verschiebt.

Ich hoffe das ganze jetzt einwenig transparenter geschrieben zu haben.

Beste Grüße,
bassi79
60730
60730 22.02.2009 um 16:57:40 Uhr
Goto Top
Servus,

mach maL folgendes:


  • verbinde dich mit dem FTP und schicke einen Ordner.
  • melde dich ab
  • speichere das log als ok ab

  • verbinde dich wieder mit dem FTP und schicke noch einen Ordner
  • während der Ordner übertragen wird uns schon einige Deteien angekommen sind klemme den FTPO Transfer ab - z.b durch Netzwerkkabel ziehen.

Die beiden Logs - gerne anoymisiert kannst du dann als log ok und lok abbruch hier als Kommentar einfügen.
Mal sehen, was sich daraus zimmern läßt.

Gruß
bassi79
bassi79 23.02.2009 um 09:24:33 Uhr
Goto Top
Hallo Timo,

hier der Inhalt der Log.txt mit einem Test-Kunden Schmidt:

[02] Mon 23Feb09 08:42:18 - (000006) Benutzer "Schmidt" angemeldet
[03] Mon 23Feb09 08:42:18 - (000006) IP-Name: xxxx (xx.xxx.xxx.xx)
[11] Mon 23Feb09 08:43:14 - (000006) Empfange Datei "Z:\Server\Schmidt\1234-Test.txt"
[02] Mon 23Feb09 08:43:40 - (000006) Benutzer "Schmidt" abgemeldet


ich habe an anderer Stelle schon ein Script für das Verschieben als Vorlage gefunden, welches auch eine Meldung ausgibt.

'*******************************************************  
'  - verschiebt Dateien von einem festgelegten Quell-   
'    in einen festgelegten Zielordner  
'  - falls im Zielordner eine Datei vorhanden ist wird  
'    diese nicht verschoben  
'*******************************************************  
 
Option Explicit
Dim fso, oFile, oFiles, oFolder
Dim sQuelle, sZiel, sMsg
Dim fKunde
 
On Error Resume Next
 
Set fso = CreateObject("Scripting.FileSystemObject")  
Set oFolder = fso.GetFolder("Z:\Server\Schmidt")  
Set oFiles = oFolder.Files
 
sZiel = "Y:\Schmidt\"  
fKunde = ("Schmidt")  
 
For Each oFile In oFiles
 sQuelle = fso.GetAbsolutePathName(oFile)
 fso.MoveFile sQuelle, sZiel
 
 If Err.Number <> 0 Then
  sMsg = Err.Description
 
  Select Case Err.Number
   Case 58
    sMsg = sMsg & vbCrlf & vbCrlf & sQuelle
   Case 76
    sMsg = sMsg & vbCrlf & vbCrlf & sZiel
   Case Else
    sMsg = sMsg
  End Select
 
  MsgBox sMsg, 48, "Fehler!"  
  Err.Clear
 End If
Next
 
MsgBox "Dateien von " & fKunde & " erhalten", 64, "Dateien empfangen"  

Das Script müßte jetzt anhand der Log.txt wissen welcher Benutzer hat sich angemeldet und sobald er sich abmeldet beginnt es mit dem verschieben aus dem Kundenordner (hier Z:\Server\Schmidt) ins geschützte Verzeichnis (Y:\Schmidt) zum bearbeiten. Anschließend gibt es den Kunden in der MsgBox aus.


Beste Grüße,
bassi79
60730
60730 25.02.2009 um 15:03:06 Uhr
Goto Top
Servus,

ein paar Denkanstösse:

  • ich wollte zwei Logs ein "gutes" und eines mit absichtlichem Fehler - um herauszuknobeln, wie sich dann die Logs unterscheiden.
- denn es macht nur Sinn einen "guten" Transfer zu melden und Schritte einzuleiten.

  • Das Script ansich immer mit parametern füttern, nicht mit festen "Namen" / Pfaden
  • eine msg Box kommt nur da - wo es läuft - also eher nur zum Testen benutzen.

Nimm dazu lieber Blat / Bmail oder einen anderen Kommandozeilenmailer / Weg den User zu benachrichtigen.

Leider liefert dein FTP Server Log den Benutzernamen in Anführungszeichen.

Also mußt du:
findstr "Benutzer .Schmidt. abgemeldet" Log.txt && echo Schmidt war auf FTP && start obiges.vbs  
bemühen.

Aber wie geschrieben, das Vbs script ist nicht wirklich das richtige.

Ganz ohne diesen VBS Schnippsel - in einem einzeiler wäre es so realisierbar:

findstr "Benutzer .Schmidt. abgemeldet" Log.txt && move Z:\Server\Schmidt\*.* Y:\Schmidt\*.* && echo mail  

Ganz ohne "Schmidt" wäre das dann der Weg, der zu gehen wäre:

unteren schnippsel.cmd Schmidt

findstr "Benutzer .%1. abgemeldet" Log.txt && move Z:\Server\%1\*.* Y:\%1\*.* && echo mail  

Also diesen letzten Einzeiler als cmd abspeichern und mit jedem möglichen FTP User als Parameter aufrufen

schnippsel.cmd Schmidt
schnippsel.cmd meier
schnippsel.cmd mueller
schnippsel.cmd Schulze

Den "Befehl" echo mail, dann bitte umschreiben in bmail/ Blat oder mit was auch immer du deine Mails verschicken magst - ändern.

Aber wie gesagt, daß läuft dann alles "ohne" Abfrage, ob sich der FTP User normal abgemeldet hat - oder wegen Timeout /xyz abgemeldet wurde.
Auch ob dein User evtl. gerade genau eine alte version geöffnet hat - ist alles nicht berücksichtigt.
Von daher sie das alles nur als Proof of Concept.

Gruß