Titel: Zeitstempel bei hochgeladenen Dateien falsch Beitrag von: polonius am 10. November 2006, 12:24:06 Hallo,
mir ist aufgefallen, dass alle hochgeladenen Dateien und Verzeichnisse nicht mehr den ursprünglichen Zeitstempel tragen, sondern mit der aktuellen Zeit (zum Zeitpunkt des Hochladens) modifiziert werden. Beispiel: Eine Datei hat unter WinXP das Zeitattribut 'Geändert am': 26.10.2006. Nach dem Hochladen auf den FTP Server ist der Zeitstempel auf das aktuelle Datum geändert worden. Im Prinzip wäre mir das egal, wenn die Datei einen neuen timestamp bekommt, aber ich möchte zwei Verzeichnisse synchronisieren und die zu synchronisierenden Dateien/Verzeichnisse sollen anhand des Datums erkannt werden. Und dafür ist es notwendig, dass der FTP-Server die ursprünglichen Zeitstempel der Dateien genau übernimmt. Ansonsten funktioniert das ganze ja nicht... Das Problem habe ich schon mit verschiedenen FTP-Clients (FileZilla, PSftp Pro, psftp, CoreFTP, etc.) von einem Windows XP Pro Rechner aus reproduzieren können. Daher gehe ich davon aus, dass das Problem bei den Servereinstellungen liegt. Mit SSh Secure File Transfer und dem gleichen Benutzer tritt das Problem übrigens nicht auf - aber nun gut, ssh ist auch ne andere Geschichte als FTP... Bei dem PSftp Pro Client funktioniert eine automatische Synchronisation z.B. nur, wenn man explizit MDTM in den Ooptionen des Programms deaktiviert. Ansonsten wird die Synchronisation mit Fehlermeldung abgebrochen: Code: "Nr","SYNC_ID","Message","DateTime" "0","2","Verbindung wird hergestellt. Server: lagerschuppen.dyndns.org, Port: 21","10.11.2006 11:34:28" "1","2","220 ProFTPD 1.2.10 Server (Debian) [192.168.1.2]","10.11.2006 11:34:38" "2","2","USER polonius","10.11.2006 11:34:38" "3","2","331 Password required for polonius.","10.11.2006 11:34:38" "4","2","Passwort wird gesendet","10.11.2006 11:34:38" "5","2","230 User polonius logged in.","10.11.2006 11:34:38" "6","2","FEAT","10.11.2006 11:34:38" "7","2","211-Features:","10.11.2006 11:34:38" "8","2","211-MDTM","10.11.2006 11:34:38" "9","2","211-REST STREAM","10.11.2006 11:34:38" "10","2","211-SIZE","10.11.2006 11:34:38" "11","2","211-AUTH TLS","10.11.2006 11:34:38" "12","2","211-PBSZ","10.11.2006 11:34:38" "13","2","211-PROT","10.11.2006 11:34:38" "14","2","211 End","10.11.2006 11:34:38" "15","2","Die Synchronisierung wurde abgebrochen. Bitte MDTM Optionen prüfen","10.11.2006 11:34:38" "16","2","Synchronisierung beendet.","10.11.2006 11:34:38" Ich benutze ProFTPD 1.2.10 auf einem Debian 3.1 Sarge Sytem. Hier die ProFTPD Conf: Code: # # /etc/proftpd.conf -- This is a basic ProFTPD configuration file. # To really apply changes reload proftpd after modifications. # ServerName ****************** ServerType standalone DeferWelcome off #UseReverseDNS off #IdentLookups off debugLevel 6 ServerLog /var/log/proftpd.debug.log #MultilineRFC2228 on DefaultServer on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayFirstChdir .message ListOptions "-l" DenyFilter \*.*/ DefaultRoot ~ #AllowForeignAddress on PassivePorts 50000 50500 # Uncomment this if you are using NIS or LDAP to retrieve passwords: #PersistentPasswd off # Uncomment this if you would use TLS module: TLSEngine on # Uncomment this if you would use quota module: #Quotas on # Uncomment this if you would use ratio module: #Ratios on # Port 21 is the standard FTP port. Port 21 #TimesGMT on # To prevent DoS attacks, set the maximum number of child processes # to 30. If you need to allow more than 30 concurrent connections # at once, simply increase this value. Note that this ONLY works # in standalone mode, in inetd mode you should use an inetd server # that allows you to limit maximum number of processes per service # (such as xinetd) MaxInstances 30 # Set the user and group that the server normally runs at. User nobody Group nogroup # Umask 022 is a good standard umask to prevent new files and dirs # (second parm) from being group and world writable. Umask 022 022 # Normally, we want files to be overwriteable. AllowOverwrite on # Delay engine reduces impact of the so-called Timing Attack described in # http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02 # It is on by default. #DelayEngine off # A basic anonymous configuration, no upload directories. # <Anonymous ~ftp> # User ftp # Group nogroup # # We want clients to be able to login with "anonymous" as well as "ftp" # UserAlias anonymous ftp # # Cosmetic changes, all files belongs to ftp user # DirFakeUser on ftp # DirFakeGroup on ftp # # RequireValidShell off # # # Limit the maximum number of anonymous logins # MaxClients 10 # # # We want 'welcome.msg' displayed at login, and '.message' displayed # # in each newly chdired directory. # DisplayLogin welcome.msg # DisplayFirstChdir .message # # # Limit WRITE everywhere in the anonymous chroot # <Directory *> # <Limit WRITE> # DenyAll # </Limit> # </Directory> # # # Uncomment this if you're brave. # # <Directory incoming> # # # Umask 022 is a good standard umask to prevent new files and dirs # # # (second parm) from being group and world writable. # # Umask 022 022 # # <Limit READ WRITE> # # DenyAll # # </Limit> # # <Limit STOR> # # AllowAll # # </Limit> # # </Directory> # # </Anonymous> #TLS <IfModule mod_tls.c> TLSEngine on TLSLog /var/log//proftpd_tls.log TLSProtocol TLSv1 TLSRequired off TLSRSACertificateFile /usr/local/etc/ftpcert/host.cert TLSRSACertificateKeyFile /usr/local/etc/ftpcert/host.key </IfModule> Ich hab bis jetzt auch schon einige Zeit mit Recherche im Internet zu diesem Problem verbracht. Allerdings nicht wirklich fündig geworden... Vielleicht weiß hier ja jemand Rat?! Viele Grüße, polonius Titel: Re: Zeitstempel bei hochgeladenen Dateien falsch Beitrag von: VolGas am 10. November 2006, 13:20:55 Hallo polonius,
an Deiner proftpd.conf ist mir nichts nachteiliges aufgefallen, nur die beiden Anweisungen "UseReverseDNS off" und "IdentLookups off" solltest Du aus Performancegründen wieder reaktivieren. Zum Thema: beim FTP wird bei jedem Upload eine neue Datei im Filesystem angelegt. Die einzige "Information", die das Filesystem zu dem File erhält, ist der Dateiname - sonst nichts. Daher hat jedes File folgerichtig das Erstellungsdatum gleich dem Uploaddatum. Der FTP-Standard wurde später um den Befehl "MDTM" (MoDification TiMe) erweitert - damit kann man dem Upload quasi eine Zeitinformation mit einer zusätzlichen Anweisung hinterherschicken. Das ist allerdings die Sache des FTP-Clients, dies auch immer zu tun. Das FT-Protokoll bietet einfach keine Möglichkeiten, weitere Dateiattribute mit zu übertragen - ein entsprechendes Setting eines FTP-Servers ist damit sinnlos und gibt es also auch nicht. D.h.: Du hast mit Deiner Vermutung recht: FTP ist zum Synchronisieren von Dateien nur bedingt tauglich. Solange die Dateien auf dem Server nicht verändert werden, kann der FTP-Client zumindest erkennen, ob eine lokale Datei ein neueres Modifikationsdatum hat, als die entsprechende Datei auf dem Server. Das ist aber auch schon alles - wird die Datei auf dem Server modifiziert, dann ist dies nicht mehr sicher zu erkennen. Zur Synchronisation gibt es andere Protokolle, Dienste/Server/Clients. Unter Unix/Linux ist immer noch das alt-bewährt/berüchtigte "rsync" das populärste System zum Replizieren von Dateien und Verzeichnisstrukturen. Es gibt Protierungen für Windows von scp, rsync und unison, so daß es möglich ist, genau die gleichen Methoden anzuwenden wie unter Unix. Einen etwas Windows-ähnlichere Lösung ist der "winscp"-Client von http://winscp.sourceforge.net/eng/. Er bietet zur Übertragung von Daten eine Oberfläche ähnlich der des Explorers. Zu diesen Programmen kann ich Dir weiter keine Auskunft geben - ich habe mit µ$ nix am Hut und hier in diesem ProFTPD-Forum wäre auch der falsche Ort dafür. Ich hoffe dennoch, daß ich Dir mit meinen Infos weiterhelfen konnte. mfg. VolGas Titel: Re: Zeitstempel bei hochgeladenen Dateien falsch Beitrag von: polonius am 10. November 2006, 15:59:04 Hallo VolGas,
vielen Dank für Deine ausführliche Antwort. Damit bin ich doch schon ein ganzes Stück weiter... Aber noch eine kleine Nachfrage: Wenn ich Dich richtig verstanden habe, muß der MDTM-Befehl ja auch von FTP-Server angeboten/unterstützt werden. Ist dies bei ProFTPD standardmäßig der Fall, oder muß das explizit aktiviert werden? Nochmals Danke + viele Grüße, polonius Titel: Re: Zeitstempel bei hochgeladenen Dateien falsch Beitrag von: VolGas am 10. November 2006, 16:47:06 Freut mich, daß ich Dir weiterhelfen konnte.
Der ProFTPD ist ein "moderner" FTP-Server: MDTM beherrscht er natürlich - ganz ohne "Konfigurations-Bedarf" für dieses Feature. Wenn man sich z.B. per Telnet auf dem FTP-Server einloggt (Port 21), kann man mit dem Befehl "FEAT" die zusätzlichen FTP-Features abfragen. mfg. Volgas |