Wie kann ich automatisch mehrere Websites über Coda herunterladen?

Ich habe mehrere Websites in Coda, die ich automatisch erneut herunterladen möchte, wenn ich es dazu auffordere. Die Sites werden gemeinsam verwaltet, und ich möchte automatisch eine neue Kopie der Sites herunterladen. Ich bin offen für AppleScripting, einen Automator-Workflow, ein Shell-Skript, eine Kombination aus allen dreien oder alles andere, was Sie vorschlagen. Wie würde ich vorgehen?

Bearbeiten: Kann ich ein Shell-Skript schreiben, um die gesamte Site per FTP herunterzuladen, es dann in meinen Ordner "Sites" zu kopieren und die vorhandenen Daten zu überschreiben? Ich muss in der Lage sein, dies für mehr als eine Site zu tun, also brauche ich eine Möglichkeit, den Domänennamen, den Benutzer, das Passwort und das Verzeichnis zu übergeben, in das es kopiert werden soll.

Würde es zufällig ein Source-Control-System (CVS, SVN, Git, Mercurial) geben, das bei dieser "kollaborativ verwalteten" Website hilft?
@VxJasonxV Nein, es ist ein benutzerdefiniertes Framework.
Gute Frage @VxJasonxV. Wenn Sie beispielsweise SVN verwendet haben, wären Aktualisierungen einfach, und Sie haben den Vorteil, dass Ihre Mitarbeiter Ihre Aktualisierungen nicht willkürlich überschreiben. Es ist der richtige Weg!
@Anthony Ich möchte wirklich nur ein Applescript / Shell-Skript schreiben, um dies zu tun. Ich weiß, dass es möglich ist, aber ich habe einfach nicht die Scripting-Kenntnisse, um zu wissen, wie es geht.

Antworten (1)

Sie können dafür einfach wget verwenden und es beliebig skripten. Hier ist ein kurzes Beispiel dafür, wie Sie es verwenden können, um eine Ihrer Websites in einer Zeile herunterzuladen und zu überschreiben:

wget ~/Sites/domain/ ftp://[username]:[password]@ftp.example.com/www/

Um also mehrere Websites zu erstellen, würden Sie Folgendes verwenden:

wget -P ~/Sites/ -i sites.txt

Und Ihre Textdatei könnte in etwa so aussehen:

ftp://username:password@ftp.site1.com/www/
ftp://username:password@ftp.site2.com/www/
ftp://username:password@ftp.site3.com/www/

Von der wget Manpage:

Recursive download:
  -r,  --recursive          specify recursive download.
  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).
       --delete-after       delete files locally after downloading them.
  -k,  --convert-links      make links in downloaded HTML or CSS point to
                            local files.
  -K,  --backup-converted   before converting file X, back up as X.orig.
  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.
  -p,  --page-requisites    get all images, etc. needed to display HTML page.
       --strict-comments    turn on strict (SGML) handling of HTML comments.

Recursive accept/reject:
  -A,  --accept=LIST               comma-separated list of accepted extensions.
  -R,  --reject=LIST               comma-separated list of rejected extensions.
  -D,  --domains=LIST              comma-separated list of accepted domains.
       --exclude-domains=LIST      comma-separated list of rejected domains.
       --follow-ftp                follow FTP links from HTML documents.
       --follow-tags=LIST          comma-separated list of followed HTML tags.
       --ignore-tags=LIST          comma-separated list of ignored HTML tags.
  -H,  --span-hosts                go to foreign hosts when recursive.
  -L,  --relative                  follow relative links only.
  -I,  --include-directories=LIST  list of allowed directories.
  --trust-server-names             use the name specified by the redirection
                                   url last component.
  -X,  --exclude-directories=LIST  list of excluded directories.
  -np, --no-parent                 don't ascend to the parent directory.
Cool! Wie kann ich Domänen, ~/Sites/Domäne, Benutzer und Passwörter übergeben?
Sie können eine Textdatei erstellen, die alle verarbeitet. (aktualisierte Antwort)
Ich habe gerade keine Zeit, das zu testen, aber wenn ich es tue, werde ich es dich wissen lassen. Vielen Dank!
Sicher. es ist sehr einfach zu tun, was Sie wollen; Änderungen an der Syntax wären geringfügig.
Es lädt nur index.html herunter. Wie lade ich alle Ordner und die darin enthaltenen Dateien herunter?
put und -r in den Argumenten, um Dateien rekursiv abzurufen; Sie können beispielsweise auch -l 1 verwenden, um eine Ebene nach unten zu gehen. wget / Rekursive Abrufoptionen
Eindrucksvoll! Ich werde es bei Gelegenheit versuchen. Vielen Dank!
Kein Problem; Lassen Sie mich wissen, wenn Sie weitere Fragen haben - ich helfe Ihnen gerne weiter.
Ich habe noch eine Frage (ich hoffe es ist nur eine). Wie lade ich nur bestimmte Ordner/Dateien herunter? Es lädt alles herunter , einschließlich Protokolldateien und anderer unsichtbarer Dateien.
@daviesgeek, als Sie sagten: "Kann ich ein Shell-Skript schreiben, um die gesamte Site herunterzuladen", nahm ich an, dass Sie alles wollten. Möchten Sie nur bestimmte Dateien oder bestimmte Ordner? Sie können in spezifischere Verzeichnisse vordringen, indem Sie sie nach /www/like angeben /www/path/to/file/. Meinst Du das? Ich habe einige wgetArgumente in meine ursprüngliche Antwort aufgenommen, die helfen sollten.