rsync -> on change

Mike'adelic

Aktives Mitglied
Thread Starter
Dabei seit
17.12.2006
Beiträge
560
Reaktionspunkte
23
Servus Forum,

ich suche schon seit ein paar Tagen ne anständige Lösung um vollautomatisch meinen PHP-Code auf meinen Server zu schieben.

Die Leute, die schon unter Windows entwickelt haben und den Folder-Sync von WinSCP zu schätzen gelernt haben, wissen was jetzt kommt.

Da ich bisher noch keinen FTP/SCP Client gefunden habe, der mir alle entsprechenden Dateien on change (!) auf den Server schiebt und ich schon etwas recherchiert habe, habe ich mich gefragt, ob das nicht dann wenigstens mit den OS X Bordmitteln funktioniert.

Also dann wohl mit rsync.

Meine Anforderung ist simpel:

Nach jedem Speichern soll automatisch die veränderte Datei auf den Server geschoben werden, ohne dass ich extra interagieren muss oder auf nen Cron-Job warten muss (auch wenn dieser minütlich ausgeführt würde).

Wie man das mit rsync manuell macht, weiß ich bisher schon, aber wie bekomme ich die Automation hin?

Danke schon mal mit Grüßen

Mike

p.s. Tante Google hab ich schon mehrfach befragt, aber dieses "Watchdog-Rsync" ist mir bisher noch nicht untergekommen
 
Super, danke. Das schau ich mir gleich mal an.

Schlägt sich das großartig auf die Rechner-Performance nieder?
 
Super, danke. Das schau ich mir gleich mal an.

Schlägt sich das großartig auf die Rechner-Performance nieder?

hängt nat. von Deinen Schreibaktivitäten ab! Ich habe es hier ständig laufen und sicher damit mein Documents- und mein Projektverzeichnis auf einen Backuprechner bei uns im Netz!
 
Also ich verwende FUSE um mir "Laufwerke" (eigentlich Ordner) per SSH als Volumes (wie lokale Festplatten) am Mac zu mounten.

http://macfusionapp.org/ bzw. die sehr schön gelöste Möglichkeit dies per Transmit zu machen: http://www.panic.com/transmit/ (runter scrollen)

Danke für den Hinweis. Transmit hab ich allerdings schon ausprobiert und für nicht geeignet empfunden (ausserdem wars echt langsamer als Cyberduck).

Direkt auf den Server speichern will ich nicht, sondern erst lokal speichern und dann sofort automatisch synchronisieren. Sofern das mit launchd und rsync so klappt, wie ich mir das vorstelle, ist ja alles in bester Ordnung und zudem noch kostenlos :)
 
hängt nat. von Deinen Schreibaktivitäten ab! Ich habe es hier ständig laufen und sicher damit mein Documents- und mein Projektverzeichnis auf einen Backuprechner bei uns im Netz!

Ja, das ist ja klar :)

Das beim aktiv werden natürlich Ressourcen verbraucht werden ist ja absolut in Ordnung. Hätte dazuschreiben sollen: "falls man gerade nichts in dem Ordner tut" ;)
 
WatchPath ist meines Wissens ein getriggerter Event vom OS, ich glaube nicht das da im Leerlauf großartige Last zusammenkommt.

Ich habe hier ständig 1 Browser mit etwa 3 Fenstern a 4-8 Tabs laufen, eine Windows VM, Eclipse oder Netbeans, etwa 8 Terminals und dazu noch Programme wie etwa den pgAdmin, oder mal nen Editor oder einen RemoteDesktop zu nem Windows-server oder XAMPP oder Tomcat oder ... und damit glaube ich zig andere Gründen meinen C2D iMac mit 4GB RAM langsam zu bekommen... und er läuft und läuft und läuft und läuft :)
 
Perfekt. Dann wird das dann wohl so laufen, wie ich mir das vorgestellt habe. Danke!
 
Hab alles eingerichtet nach Anleitung. Leider passiert nichts.

Wo kann ich sehen, was schief läuft?
 
Also: mit

PHP:
launchctl list

seh ich, dass das Teil läuft.

Es sieht so aus:

PHP:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" \
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<dict>
        <key>Label</key>
        <string>com.mystuff.autoupload</string>
        <key>LowPriorityIO</key>
        <true/>
        <key>Program</key>
        <string>~/Library/Scripts/upload.sh</string>
        <key>ProgramArguments</key>
        <array>
                <string>upload.sh</string>
        </array>
        <key>WatchPaths</key>
        <array>
        <string>/Users/user/Pfad/dort/hin</string>
        </array>
</dict>
</plist>

Aber es passiert nichts, wenn ich was im Verzeichnis ändere. nen chmod 755 auf die .sh hab ich auch schon probiert....

edit:
das Script per Hand ausgeführt funktioniert tadellos.
 
Zurück
Oben Unten