Frage

Ich möchte meine SCP -Bereitstellung optimieren, die derzeit alle Dateien kopiert, um nur Dateien zu kopieren, die sich seit dem letzten Build geändert haben. Ich glaube, es sollte mit dem aktuellen Setup irgendwie möglich sein, aber ich weiß nicht, wie das geht.

Ich habe Folgendes:

Projekt/SRC/Blah/Blah/<---- Dateien Ich bearbeite (meistens PHP in diesem Fall, einige statische Vermögenswerte)

Projekt/Build <------- Ich habe einen lokalen Build-Schritt, den ich hier kopiere, um die Dateien zu kopieren

Ich habe gerade eine SCP -Aufgabe, die alle Projekte/Erstellen auf einen Remote -Server kopiert, wenn ich es brauche.

Ist es möglich, dieses zusätzliche "Build" -Verzeichnis irgendwie zu nutzen, um das zu erreichen, was ich möchte - was bedeutet, dass ich nur den "Diff" zwischen SRC/** und bauen/** hochladen möchte. Ist es möglich, dies irgendwie als Filesserie in Ant und dann scp abzurufen?

Mir ist klar, dass das, wenn ich irgendwie mit Dateien auf dem Server dazwischen lösche/herumlösche, das Ameisenskript nicht bemerken würde, aber für mich ist das in Ordnung.

War es hilfreich?

Lösung

Du kannst sagen ant scp Kopieren nur Dateien, die seit dem letzten Druck mit dem geändert wurden modified Tag wie SO:

<scp trust="true" sftp="true"... >
  <fileset dir="${local.dir}">
    <modified>
      <param name="cache.cachefile" value="localdev.cache"/>
    </modified>
  </fileset>
</scp>

Wenn Sie dies zum ersten Mal verwenden, wird alle Dateien gesendet und die Zeitstempel in der in der deklarierten Bestattungsbilder zwischenstrichen param. Danach sendet es nur die geänderten.

Getestet und im SFTP -Modus verifiziert.

Andere Tipps

Ich denke, Sie müssen verwenden rsync stattdessen. Ich fand Folgendes Artikel Das beantwortet Ihre Frage.

Kurz gesagt, RSYNC wird dort wieder aufgenommen, wo es aufgehört hat, und es sollte möglich sein, es über SSH abzutuneln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top