Verzeichnisse mit WinSCP synchronisieren

WinSCP LogoEin unter Windows entwickeltes Projekt auf einen „Produktiv“ Server zu laden kann doch mitunter recht umständlich werden. Gerade wenn der Server nur via SSH erreichbar ist.

Die meisten Entwicklungsumgebungen (in meinem Fall Netbeans IDE 6.9.1) können zwar mit SCP umgehen, oft ist aber noch mehr zu erledigen als einfach ein paar Dateien hochzuladen. Manchmal müssen Dateirechte gesetzt werden oder auch ein Script zum Bereinigen des Caches ausgeführt werden. Je nach Szenario kann die Liste der anschließenden Aufgaben recht lang werden.

Hilfe kann hier das Programm WinSCP bieten. Es bietet Windows Benutzern nicht nur eine einfache Oberfläche um Dateien per SCP zu kopieren, sondern kann auch mit Skripten umgehen.

Folgende Beispielkonfiguration führt eine Synchronisation zwischen einem lokalen Verzeichnis und einem „Produktiv“ Server durch. Nach dem Abgleich werden ein paar Skripts ausgeführt, bevor die Verbindung getrennt und das Programm beendet wird.

# Optionen setzen
option batch on
option confirm off

# Verbinden mit gespeicherter Verbindung
open  server01

# In Verzeichnis wechseln
cd /var/www

# Sync Local->Remote
synchronize remote D:\Projekte\ProjektName /var/www -delete

# Dateirechte setzen
call chown -R www-data:www-data /var/www

# Minimiert u. kopiert alle JS/CSS Dateien ins CDN
call /usr/scripting/minimize_css.pl
call /usr/scripting/minimize_js.pl

# Cache leeren
call /usr/scripting/clear_cache.sh

# Replikation anrollen
call /usr/scripting/sync_webserver.sh

# Verbindung trennen
close

# WinSCP schließen
exit

Um das Skript auszuführen wird das Programm wie folgt aufgerufen:

C:\Programme\WinSCP\winscp.exe /console /script=C:\…\winscp-script.txt

Das Skripting von WinSCP bietet noch eine Reihe anderer Möglichkeiten, die in der Dokumentation nachgelesen werden können.

Weitere Informationen zum Thema:
http://winscp.net/
http://winscp.net/eng/docs/scripting