Bash: Daten aus SVN ausschecken und auf FTP uploaden (deploy)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Bash: Daten aus SVN ausschecken und auf FTP uploaden (deploy)

    Hallo liebe User,

    Ich habe einige Vorstellungen um einen deploy zu realisieren.

    Als erstes müsste das Script die neuen Daten aus dem SVN ausschecken und temporär ablegen (Bsp: /nc_deploy/temp/cserv/).
    Nun sollte das Script auch die Revisionsnummer kennen um sie später zu vermerken.
    Die Daten aus dem SVN haben natürlich auch Unterordner.
    Das Script soll nun die ausgecheckten Daten auf einen entfernten FTP Server laden und dabei die gleichnamigen Dateien überschreiben.
    Danach soll das Script die Revisionsnummer in eine neue Datei auf dem FTP schreiben (z.B. mit dem Inhalt "24.08.2010 - 13:55:12 Revision 544" und dem Dateinamen "LastDeploy.txt")

    So das ist zumindest der Plan......
    Nun bin ich nicht ganz so fit in Bash und möchte gerne ein paar Lösungsvorschläge bzw. Codesexamples von euch haben.
    Wichtig ist, dass ich das Script editieren kann und die Dateien auch vollständig übertragen werden.

    Ich habe nun ein bisschen gegoogelt und z.B. den Teil für das Übertragen mit ftp gefunden, leider gilt das nur für jede Datei einzeln.

    Ich hänge das Codestück einfach mal mit an:

    Quellcode

    1. #!/bin/bash
    2. # -----------------
    3. # Konfiguration
    4. # -----------------
    5. LOKAL_PFAD = /nussclan_deploy/tmp/datei.txt
    6. REMOTE_PFAD = /css/conf/datei.txt
    7. FTP_SERVER = 127.0.0.1
    8. FTP_USER = bla
    9. FTP_PASS = bla
    10. # -----------------------------------------------------
    11. # SVN auschecken
    12. # FTP verbindung herstellen
    13. ftp -n <<EOFTP
    14. open FTP_SERVER
    15. user FTP_USER FTP_PASS
    16. bin
    17. put $LOKAL_PFAD $REMOTE_PFAD
    18. quit
    19. EOFTP
    20. # Und jetzt wieder aufraeumen..
    Alles anzeigen



    Vielen Dank im voraus!
    Beste Grüße,
    M4rc3L-XCN
  • kannst du es nicht per scp machen? ftp ist doch ziemlich veraltet und unsicher.

    Ansonsten hier ein netter Artikel dazu: phpadvent.org/2009/automate-your-deployment-by-rob-allen
    Dort findest du zum einen eine Custom Lösung, aber auch wie es mit gängigen Tools wie phing funktioniert.

    Für echtes Continuos Integration würde sich aber wohl eher Hudson in Kombination mit Debian Buildpackage Scripten anbieten.
    Bei deinem FTP Workflow gibts keine Möglichkeiten Versionsabhängigkeiten anzugeben.

    Oder google mal nach [google]php automatic deploy[/google]
  • Nein das Problem ist das ich Daten aus dem SVN zu einem extern gehosteten Server der leider nur FTP Zugang hat übertragen möchte.
    Die Versionabhängigkeit ist schon gegeben da ich den tag aus dem SVN auf den FTP laden möchte.
    Deswegen möchte ich aus dem SVN einen bestimmten Pfad ausschecken und kopieren und diese dann über FTP in das Verzeichnis überschreiben.

    also sagen wir es mal kurz: Ich möchte Ordner X + Unterordner vom Linux-Server auf einen FTP Server übertragen in Pfad X
    Beste Grüße,
    M4rc3L-XCN