1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Schleife aber wie?

Dieses Thema im Forum "AppleScript" wurde erstellt von Martin111, 20.11.06.

  1. Martin111

    Martin111 Gast

    Liebe Applescripter,

    Ich bin ein völliger Applescript Neuling.
    Man nennt dies wohl eine Schleife, wonach ich suche:

    Mit Automator habe ich eine Aktion, wo Daten vom FTP-Server auf meine Harddisk geladen werden.

    Als nächstes würde ich gerne eine Applescript Aktion einfügen, welche mich wieder zur vorhergehenden Aktion führt, prüft ob der Download vollständig beendet wurde und allenfallls die vorhergehende Aktion nochmals durchführt, bis der Download komplett ist. Wenn der Download komplett ist, dann wird die nächste Aktion eingeleitet.

    Ist das schwierig zu lösen? Selbst wenn es extrem einfach sein sollte, wäre es für mich sauschwierig. Ich wäre für Eure Hilfe sehr dankbar.

    Liebe Grüsse

    Martin
     
  2. Martin111

    Martin111 Gast

    Anmerkung: Wenn jemand vielleicht meine kompliziertes Anliegen nicht ganz versteht: Das Script sollte einfach die Aktivität eines FTP-Server prüfen (wenn Daten hin und her auf dem Server geschoben werden), dann sollte die vorhergehende Aktion wieder aktiviert werden. Wenn keine Aktivitäten feststellbar sind, dann sollte die nächste Aktion aufgefrufen werden.
     
  3. michast

    michast Adersleber Calvill

    Dabei seit:
    13.09.04
    Beiträge:
    5.810
    Ehrlich gesagt, ich verstehe es immer noch nicht. Welche Aktion läuft denn vor dem Beginn des Downloads bzw. was soll, wenn der Download noch nicht zu Ende ist, erneut gestartet werden? o_O
     
  4. Martin111

    Martin111 Gast

    Lieber Michael,

    Ich arbeite mit Automator.
    Die erste Aktion ist eine von Transmit (FTP-Client) bereit gestellte Aktion mit dem Namen "Dateien synchronisieren". Für mich als Unwissender in Sachen Applescript die eleganteste Lösung.

    Durch diese erste Aktion werden Daten vom FTP-Server auf meine Festplatte gedownloadet. Soweit so gut. Wenn nun aber gleichzeitig ein User grosse Mengen uploadet währenddem ich downloade, besteht die Möglichkeit, dass ich mit runterladen schneller bin und die Aktion mit einem unvollständigen Download beendet wird.

    In diesem Falle würde schon meine 2. Aktion in Kraft treten: E-Mail Bestätigung für erfolgreichen Download, owohl die Datei nicht fertig runtergeladen wurde.

    Ich habe noch folgenen Script von Transmit gefunden. Kann man diesen so abändern, dass der Script wie in einer Schlaufe läuft? Will heissen, dass die Aktion so lange ausgeführt wird, bis keine wachsenden Daten bzw. Upload-Aktivität feststellbar ist. Erst wenn dann der Download komplett ist, dass die nächste Aktion eingeläutet wird?

    Vielleicht kannst Du mir da weiterhelfen. Es wäre echt lieb, wenn mir jemand unter die Arme greift:) :
    Liebe Grüsse, Martin

    Code:
    - Transmit AppleScript "list files" example 
    -- Steven Frank, June 10, 2003 
    -- 
    -- Demonstrates one way to get a recursive directory listing 
    -- from an FTP server with Transmit. 
    -- 
    -- This example displays the name of each file & folder in the 
    -- "candybar" directory on Panic's FTP server. If any folders 
    -- are found, it descends into them and continues from there. 
    -- 
    -- Requires Transmit 2.5 or higher 
    
    on listDir(theDoc) 
       tell application "Transmit" 
          tell theDoc 
             tell current session 
                set theOutput to list remote folder 
                repeat with theItem in theOutput 
                   display dialog theItem 
                   if (set their stuff to theItem) then 
                      tell me to listDir(theDoc) 
                      set their stuff to ".." 
                   end if 
                end repeat 
             end tell 
          end tell 
       end tell 
    end listDir 
    
    tell application "Transmit" 
       set SuppressAppleScriptAlerts to true 
       set theDoc to (make new document) 
       tell theDoc 
          tell current session 
             connect to "ftp.panic.com" 
             set their stuff to "candybar" 
             tell me to listDir(theDoc) 
          end tell 
          close 
       end tell 
        
    end tell 
     
  5. michast

    michast Adersleber Calvill

    Dabei seit:
    13.09.04
    Beiträge:
    5.810
    Knifflig:
    Also, wenn ich das jetzt richtig verstehe, möchtest Du mit einem FTP-Client den FTP-Server synchronisieren. Beim Start der Synchronisation sind x MB auf dem Server. Während der Synchronisation werden Dateien von einem zweiten User auf den Server geladen so dass während der Synchronisation x MB + y MB auf dem Server sind, wobei y MB steigt, so lange vom zweiten User geladen wird. Du möchtest, dass eine Schleife prüft, ob y MB noch steigt oder der zweite User zu Ende hochgeladen hat. Erst, wenn auf Deinem Rechner alle Dateien sind, soll die Synchronisation beendet werden.

    Ist das so richtig?

    Das erste Problem, was ich sehe ist, dass die Synchronisation ja ein Prozess ist, der, einmal gestartet, nicht immer wieder neu gestartet werden kann. Man müsste also nach der Beendigung der Synchronisation prüfen, ob alle Dateien synchronisiert sind und dann gegebenenfalls die Synchronisation neu starten.

    Möglicherweise liege ich aber völlig daneben o_O
     
  6. Martin111

    Martin111 Gast

    Hallo Michael,

    Ganz genau - du siehst es absolut richtig. Kann man dies irgendwie lösen?
    Wenns irgendwie ginge, das wäre der absolute Hammer.
    Sonst mach ich das auf die altmodische Art - in zeitlichen Abständen immer auf den Ordner auf dem Schreibtisch klicken und nachschauen. Gruss Martin
     
  7. michast

    michast Adersleber Calvill

    Dabei seit:
    13.09.04
    Beiträge:
    5.810
    ...oder Du lässt das Skript in regelmäßigem zeitlichen Abstand laufen (Scheduler), ungeachtet, ob ein Upload stattfindet oder nicht. So bist Du auch immer Up-to-date.
     
  8. Martin111

    Martin111 Gast

    ...wäre ja eine gute Idee. Dann aber gibts bei jedem Durchlauf eine E-Mail Benachrichtigung, falls sich etwas im Ordner auf der Festplatte befindet (ob vollständig oder nicht).
    Ich glaube, dass man Synchronisation und E-Mail Benachrichtigung nur schwer miteinander verbinden kann.
     
  9. michast

    michast Adersleber Calvill

    Dabei seit:
    13.09.04
    Beiträge:
    5.810
    scheint ein Dialog zu werden. Wo sind denn die Script-Freaks? o_O
     

Diese Seite empfehlen