2017-12-04 3 views
0

Ich schreibe eine PHP-App, und unser Team hat unsere Server eingerichtet, so dass ich jedes Mal Code auf einen zweiten Server kopieren muss, wenn ich ein bearbeite Datei. Natürlich ist das gegen das DRY-Konzept und einfach eine monotone Aufgabe.Eclipse automatisch kopieren über SSH von einem Server auf einen anderen speichern, PHP

Wenn ich die Datei ändere und die Webseite aktualisiere, um die Änderungen zu sehen, müssen beide Server aktualisiert werden, sonst besteht die Möglichkeit, dass ich die alte Version auf dem Server sehe Das wurde noch nicht aktualisiert. Also ich kopiere/kasse/spare hunderte Male am Tag, während ich diese App entwickle!

Ich benutze Eclipse Luna 4.4.1. Im System Explorer ist der Systemtyp "Nur SSH". Dies ist das gleiche für Server 2.

Ich möchte, dass es eine Art von Funktionalität gibt, wo jedes Mal, wenn ich sample.php auf Server 1 speichern, wird die gleiche Datei sample.php automatisch aktualisiert und mit dem gleichen Code gespeichert auf Server 2. Ich möchte nichts anderes tun als nur die Datei auf Server 1 speichern; Danach möchte ich, dass die Datei auf Server 2 automatisch aktualisiert wird.

Beide Server laufen unter nginx OS.

Ich habe viel gelesen hier auf SE, aber viele der Fragen/Antworten sind 5+ Jahre alt, und ich frage mich, ob es eine optimale Möglichkeit, dies heute zu tun ist. Ich habe nicht viel Erfahrung mit Java, aber ich bin glücklich, dies auf irgendeine Weise zu tun, die funktionieren wird. Jedes Plugin oder eine andere Möglichkeit wäre großartig.

+0

was Server OS? Es gibt eine Reihe von OS-basierten Optionen, die ich ausdenken kann – nogad

+0

Ich würde [Deployer] (https://deployer.org/) verwenden, können Sie auf n * Hosts schieben, wenn Sie mit 1 Befehl wollten. Oder irgendeine Art von willkürlicher weltlicher Aufgabe, die die Anmeldung auf vielen Servern gleichzeitig speichert. –

+0

Hallo @nogad, danke für die Nachfrage. Wir laufen auf Nginx-Servern. Ich werde den Beitrag bearbeiten, um das hinzuzufügen. –

Antwort

0

Schauen Sie sich rsync über ssh an und legen Sie es auf ein cron, um das Update in einem periodischen Intervall auszuführen, wie Sie es wünschen. Hier

ist ein Beispiel für einen rsync-Prozess Ich betreiben Datenbanksicherungen kopieren (Typ/Inhalt der Datei ist meist irrelevant hier):

rsync -ar -e "ssh -l <username>" <local_path_of_files_to_watch> hostname:<target_path_where_files_land> 

Dies ist, was mein Befehl sieht aus wie auf rsync-Datenbanken von einem Remote-System, das den Funkverkehr und Aufzeichnungen überwacht decodiert Nachrichten an eine tägliche Protokolldatei:

rsync -av --remove-source-files --progress --stats -e "ssh -l stratdb" 192.168.0.23:/var/log/stratux.sqlite.*.gz /Users/stratdb/sqlite-dbs/. 

Wenn Sie diesen Prozess, ohne dass ausführen möchten, ein Passwort zu definieren, den Sie einrichten .ssh mit Shared Keys wollen werden, damit Passwortlose Anmeldung von Server 1 -> ser ver 2 für diesen Prozess (im Idealfall von einem Benutzer, der auf beiden Servern eingeschränkte Fähigkeiten hat).

Es gibt einige fortwährende Deployment-Prozesse, die Sie verwenden könnten, Builds und Kopien und dergleichen (zB Jenkins), wenn Sie eine wirklich robuste und in hohem Maße konfigurierbare Lösung benötigen ... aber wenn Sie nur die Dateien kopieren müssen ein Server zu einem anderen mit einem einzigen einfachen Befehl (Ad-hoc) oder automatisch. Ich werde rsync untersuchen

Verwandte Themen