Gibt es eine Dateisynchronisierungssoftware, die alle meine Server/Clients synchronisieren kann (keine GUI)?

Ich habe zwei Ubuntu-Cloud-Server (keine GUI), zwei Ubuntu-Laptops (mit GUI) und einen Windows-Desktop. Wenn ich Webcode schreibe, möchte ich den Code (im www-Ordner) auf allen meinen Geräten synchronisieren, sodass, wenn ich die HTML-Datei auf meinem Laptop ändere, sie automatisch auf dem Server (und auf dem anderen Laptop) geändert wird. Ich weiß, dass dies eine schreckliche Praxis ist, weil ich damit meine Webseite(n) durcheinander bringen könnte, aber es ist mir egal, weil es bequemer ist, als jedes Mal, wenn ich eine Seite ändere, SFTP in meinen Server einzuspeisen. Ich mag es auch nicht, jede kleine Änderung festschreiben und synchronisieren zu müssen, wenn ich meinen persönlichen Code aktualisiere.

Gibt es eine Dateisynchronisierungssoftware, die (den www-Ordner) auf allen meinen Servern/Clients synchronisieren kann?

Ich möchte etwas, bei dem ich KEINE GUI auf meinen Cloud-Servern installieren muss.

Meine ideale Dateisynchronisierungssoftware würde auf dem Ubuntu-Terminal wie folgt ausgeführt:

$: filesync /var/www -username -password

ODER

$: filesync /var/www MyCloudServer.net -password

wobei "MyCloudServer.net" als Synchronisations-/Relay-Server fungiert.

Gibt es so eine Software? Und wenn nicht, gibt es eine Möglichkeit, es so zu machen, dass mein Laptop automatisch alle geänderten HTML-Dateien in meinem /var/www-Ordner in Echtzeit per SFTP auf meinen Server überträgt, ohne dass ich auf etwas klicken muss?

Antworten (2)

BitTorrent-Synchronisierung

Installieren Sie es auf Ihrem Client und Ihrem Server und es hält Ordner Ihrer Wahl synchron, komplett mit einem Synchronisierungsverlauf, nur für den Fall, dass es Fehler gibt.

Sync überspringt die Cloud und findet beim Übertragen von Daten den kürzesten Weg zwischen Geräten. Keine Wolke. Kein Hochladen auf Server von Drittanbietern. Nur schnelle, einfache Dateisynchronisierung.

Sync kann Dateien jeder Größe verarbeiten. Einfaches Synchronisieren und Freigeben von Ordnern, die Gigabyte (oder Terabyte) an Daten enthalten.

Halten Sie Ordner zwischen mehreren Plattformen und Betriebssystemen synchronisiert. Die Synchronisierung ist für OS X, Windows, Linux, NAS-Geräte und mehr verfügbar.

Mit Ihrem Ubuntu-Server können Sie sich auf diese Anleitung beziehen , aber im Grunde:

  1. Repository hinzufügen:add-apt-repository ppa:tuxpoldo/btsync
  2. Es installieren:apt-get update && apt-get install btsync
  3. Konfigurieren Sie es, indem Sie eine Reihe von Fragen beantworten, die es während der Installation stellt. Wenn Sie Fehler gemacht haben, konfigurieren Sie einfach neu ( dpkg-reconfigure btsync)
  4. Gewähren Sie dem btsyncBenutzer Zugriffsberechtigungen für den Ordner, den Sie synchronisieren möchten ( chown you:btsync && chmod 775)

Wie Sie es gewünscht haben, gibt es per se keine GUI, aber es ist einfacher, Ihre Synchronisierung zu konfigurieren, wenn Sie die Webschnittstelle verwenden. Durch Ausführen des btsyncProzesses wird eine Schnittstelle eingerichtet http://your_ip_or_domain:8888, die mit dem Benutzernamen und dem Kennwort authentifiziert wird, die Sie während der Installation angegeben haben. Sie können dies dann verwenden, um die Synchronisierung Ihrer Ordner zu verwalten.

Kann ich vorschlagen, dass eine viel bessere Arbeitsweise darin besteht, ein Versionskontrollsystem wie mercurial (hg) oder git zu verwenden und wenn Sie mit Ihren Änderungen auf einem Computer zufrieden sind, einfach das Repo zu bestätigen und zu pushen, wenn Ihre anderen Computer eine haben chron-Aufgabe läuft, die alle 10 Minuten einen Pull und ein Update durchführt, dass sie innerhalb von 10 Minuten automatisch die neueste Version verwenden.

Die Verwendung eines VCS hat viele Vorteile und bedeutet, dass Sie, wenn Sie etwas vermasseln, die Änderungen rückgängig machen, das Rollback möglicherweise mit zusätzlichen Änderungen zurückschreiben, festschreiben und erneut pushen können, dann können Sie loslegen.

Sowohl hg als auch git sind für die meisten Plattformen verfügbar und auf vielen vorinstalliert.

Jeder professionelle Workflow sollte es Ihnen ermöglichen, zu Ihrer vorherigen Arbeit zurückzukehren.

Ich hasse es. Ich hasse es, Verpflichtungen einzugehen. Ich hasse es, mein Passwort einzugeben. Ich hasse Versionskontrolle.
Ich würde lieber nur ein tägliches Backup machen und auf das letzte tägliche Backup zurückgreifen, falls etwas schief geht, als meine Zeit damit zu verschwenden, "git commit -m "none-of-you-business-I-only-mused-to" einzugeben -aktualisiere-ein-paar-kleine-dinge-ich-glaube-nicht-dass-ich-etwas-eintippen-muss-um-die-änderung-eines-codes-auf-meinem-server-zu-rechtfertigen" ". Jedes Mal, wenn ich eine kleine Änderung pushen und synchronisieren möchte.
Dann wünsche ich Ihnen und Ihren Arbeitgebern viel Glück – Sie werden es beide brauchen. Schon mal was von Schlüsselanhänger gehört? Keine Notwendigkeit für Passwörter.
Ich meine, zum Veröffentlichen und Teilen von Code verwende ich Git, nachdem eine große Änderung abgeschlossen ist (Änderung einer größeren Version, Teilen von Code mit Freunden usw.). Etwas, das vielleicht einmal im Monat passiert. Um ganz ehrlich zu sein, die einzige Möglichkeit, Git jemals für meine eigenen persönlichen Projekte zu verwenden, wäre, wenn Git automatisch ein Commit erstellt, dieses Commit auf den Server schiebt und dann alle Änderungen, die vorgenommen wurden, nach jedem einzelnen Speichern eines Textes zieht Datei.
Ich meine, ich habe es benutzt - Zusammenführen, mehrere Branches, Commits rückgängig machen usw. Wenn mein Arbeitgeber mich dazu zwingen würde, es zu verwenden, würde ich es tun. Aber für meine persönlichen Programmierprojekte ist es einfach Mist.
Bei näherer Überlegung könnte ich einfach ein Eclipse-Plugin schreiben, das genau das tut (automatisches Festschreiben und Synchronisieren nach jedem Speichern), lol. Aber bis dahin ist diese Antwort nicht akzeptabel.
„Ich hasse Git. Ich hasse es, Commits zu machen. Ich hasse es, mein Passwort einzugeben.“ Während ich über das erste für Sie nicht streiten kann (obwohl ich Git liebe), verstehe ich das letztere nicht: Ich habe eine Cron-Job-Einrichtung, die sich automatisch um mich kümmert, und muss nie das Passwort eingeben (nach der Ersteinrichtung, das ist). Für Ihren Fall würde ich sogar darüber nachdenken, noch einen Schritt weiter zu gehen und mit GitAnnex zu prüfen – damit Sie definieren können, welche Dateien wohin und welche überall gehen sollen.
Ich werde darüber nachdenken. Ich meine, die Häufigkeit, mit der es ausgeführt werden müsste, ist ziemlich hoch (ich programmiere gleichzeitig auf drei verschiedenen Computern in drei verschiedenen Teilen meines Hauses). Ich meine, ich habe einen Computer in der Küche, einen im Badezimmer und einen im Schlafzimmer, und jedes Mal, wenn ich ins Badezimmer gehe, schreibe ich ein paar Codezeilen und wenn ich fertig bin, mache ich das Ich gehe in die Küche, esse etwas und schreibe ein paar Zeilen Code (da, wo ich aufgehört habe, als ich im Badezimmer codierte), und dann gehe ich ins Schlafzimmer und codiere dort, bis ich brauche wieder das Badezimmer zu benutzen.
Aber ja – meine optimale Programmierumgebung wird auf allen meinen Computern in Echtzeit synchronisiert. Manchmal, wenn ich nicht zu Hause bin (wie in der Schulbibliothek), gehe ich per SSH auf einen meiner Server und nehme dort eine Codeänderung vor und möchte, dass diese Codeänderung auf meine Laptops übertragen wird, wenn ich nach Hause komme. Früher habe ich meinen Heimdesktop als Server verwendet und alle meine Computer haben einen Dropbox-Codeordner über das lokale Netzwerk synchronisiert (mit automatischen vollständigen täglichen Backups für die letzten 30 Tage), aber jetzt befinden sich meine Server außerhalb meines lokalen Netzwerks und Ich kann das nicht (ohne den Server mit Unity/KDE-Mist zu füllen).
Es gibt mindestens ein Eclipse-Plugin für git und für hg (es gibt sie für die meisten IDEs). Wenn Sie auf eine einzelne Schaltfläche klicken, wird normalerweise ein Commit ausgeführt. Sie können normalerweise Auto-Push beim Commit festlegen. Möglicherweise haben Sie eine Standard-Commit-Nachricht auf jedem Ihrer Computer (obwohl ich vermute, dass Sie nicht "Codiert, während Sie ein S haben ..." als Nachricht für den Badezimmercomputer wünschen würden. Wenn Sie zu Ihrer anderen Maschine gelangen, wird durch Drücken einer einzigen Taste ein Zug ausgelöst, und Sie können set auto update on pull.Sie könnten wahrscheinlich eine einzelne Schaltfläche für "save all, commit & push" codieren.