Vorhandene Datei auf Server prüfen

Diskutiere mit über: Vorhandene Datei auf Server prüfen im Mac OS X - Unix & Terminal Forum

  1. RonaldMHofmann

    RonaldMHofmann Thread Starter MacUser Mitglied

    Beiträge:
    51
    Zustimmungen:
    0
    Registriert seit:
    03.09.2004
    Hallo,
    ich habe das Problem, dass ich Dateien auf einen Server hochladen muss, die dort noch nicht vorhanden sind. Um mehrfache Uploads der gleichen Datei zu vermeiden, sie verursachen ziemlichen Traffic, möchte ich vor dem Upload prüfen, ob die jeweilige Datei schon auf dem Server ist. Im Moment mache ich das so, dass ich das entfernte FTP Verzeichnis auf meinem Mac mounte, nachsehe ob die Datei drauf ist und dann wieder auswerfe (eject). Leider auch sehr aufwendig und nicht sehr zuverlässig, weil in dem fraglichen Verzeichnis derzeit ca. 8000 Dateien liegen, Tendenz steigend. Ich lade meine Dateien mit curl -T hoch. Weiss jemand ob es etwas anderes gibt das Vorhandensein einer Datei auf einem Server zu prüfen?

    TiA, Ronald
     
  2. HäckMäc_2

    HäckMäc_2 MacUser Mitglied

    Beiträge:
    4.196
    Zustimmungen:
    269
    Registriert seit:
    26.04.2005
    Was spricht dagegen, ein FTP-Programm zu benutzen, das diese Funktion beherrscht?

    CaptainFTP - einfach zu bedienender FTP-Client, Shareware
    CuteFTP - kommerzieller FTP-Client
    CyberDuck - freier FTP and SFTP Browser
    DiskOrder - Shareware Dateimanager mit FTP-Funktionalität
    Fetch - FTP & SFTP Client, Shareware
    Fugu - SFTP, SCP und SSH Frontend
    Interarchy - Shareware FTP-Client
    RBrowser - FTP Client, frei oder kommerziell (mit mehr Features)
    Transmit - beliebter Shareware FTP-Client
     
  3. RonaldMHofmann

    RonaldMHofmann Thread Starter MacUser Mitglied

    Beiträge:
    51
    Zustimmungen:
    0
    Registriert seit:
    03.09.2004
    Die Teile kenne ich alle. Alerdings sitzt ja keiner da, der das überprüft. Ich habe eine kleine Software geschrieben, die das ganze automatisch erledigt. Es sind pro Tag zwischen 200 und 500 Dateien die verschoben werden sollen. Es wäre sicher nich so toll, das jetzt mit einem eigenen FTP-Programm zu erledigen.
     
  4. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Die Aufgabe könntest Du sehr schön mit Perl lösen.
    Mit Perl könntest Du die ganze Aktion inklusive des Uploads automatisieren.
    Es gibt ein Modul Net::FTP, das dabei besonders helfen kann.

    Edit:
    Bei curl dürfte Dich der Schalter -l interessieren
     
  5. HäckMäc_2

    HäckMäc_2 MacUser Mitglied

    Beiträge:
    4.196
    Zustimmungen:
    269
    Registriert seit:
    26.04.2005
    Dann frage doch in Deinem kleinen Programm ab, ob die Datei schon existiert, vergleiche Datum und Uhrzeit, falls älter, dann kopieren, ansonsten nächste Datei.
     
  6. Pingu

    Pingu MacUser Mitglied

    Beiträge:
    4.894
    Zustimmungen:
    341
    Registriert seit:
    04.08.2003
  7. RonaldMHofmann

    RonaldMHofmann Thread Starter MacUser Mitglied

    Beiträge:
    51
    Zustimmungen:
    0
    Registriert seit:
    03.09.2004
    -> HäckMäc
    danke für Deine Mühe. Aber das mache ich ja längst. Wobei das vergleichen der Zeiten völlig irrelevant ist. Es reicht völlig aus zu woissen ob die Datei schon oben ist. Das Problem ist, dass durch die grosse Anzahl der Dateien und dem Mounten im Finder Timingprobleme auftreten.

    -> maceis
    Den Schalter -l habe ich schon probiert. Der liefert allerdings alle Dateien im Verzeichnis. Bei 8000 Dateien also auch nicht empfehlenswert. Ich hatte an etwas wie getFileInfo (URLString) gedacht. Bekomme ich die Info ist die Datei vorhanden, bekomme ich einen Fehler, dann ist sie noch nicht oben und ich muss sie hochladen. Perl wäre vielleicht interessant, habe ich mich bisher nicht mit auseinandergesetzt.
     
  8. RonaldMHofmann

    RonaldMHofmann Thread Starter MacUser Mitglied

    Beiträge:
    51
    Zustimmungen:
    0
    Registriert seit:
    03.09.2004
    Ich denke auch, dass es einen entsprechenden Befehl für das Terminal gibt. Den habe ich nur noch nicht gefunden ÷((
     
  9. MacMännchen

    MacMännchen MacUser Mitglied

    Beiträge:
    2.877
    Zustimmungen:
    213
    Registriert seit:
    03.10.2006
    meinst du den Befehl test?

    Code:
    man test
     
  10. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Mit dem Net::perl Modul kannst Du auf relativ einfache Weise einen Client programmieren, der alle Deine Bedürfnisse abdeckt. Interessant dürfte dabei sein, dass Du die Status- und Fehlermeldungen des Servers auswerten kannst, was Dir erlaubt, festzustellen, ob eine Datei auf dem Server vorhanden ist oder nicht.

    Insgesamt könnte das Skript so aussehen, dass Du ein Verzeichnis (oder ein Liste von Dateinamen) an das Skript übergibst und für jede enthaltene Datei prüfen lässt, ob diese auf dem Server existiert. Wenn nein -> hochladen + nächste Datei, wenn ja -> nächste Datei.

    Als Einstig kann Dir vielleicht das in der Doku zu Net::FTP erwähnte Beispielskript 'autoftp' unter http://www.csh.rit.edu/~adam/Progs/ dienen.
    [Edit:]Ich hab mir das gerade selbst mal angesehen. Das Skript ist bestimmt sehr leistungsfähig, aber auch sehr umfangreich und daher für den Einstieg evt. doch nicht so ideal ;).

    HTH
     
    Zuletzt bearbeitet: 11.02.2007
Die Seite wird geladen...
Ähnliche Themen - Vorhandene Datei auf Forum Datum
Hartnäckige Datei im Papierkorb nicht zu löschen ? :-( Mac OS X - Unix & Terminal 06.10.2016
im trash .datei auch anzeigen Mac OS X - Unix & Terminal 22.10.2015
Nicht vorhandene Datei wird in Terminal angezeigt Mac OS X - Unix & Terminal 20.08.2013
Der Punkt bei Datei-Rechten....wozu dient dieser? Mac OS X - Unix & Terminal 31.01.2013
Shellscript. Neue Zeile am Anfang einer Log-Datei schreiben Mac OS X - Unix & Terminal 20.03.2012

Diese Seite empfehlen

Benutzerdefinierte Suche