Rsync script mit cronjob via PuTTY auf linux server mit open suse 11.1
Hallo, ich bin Admin Beginner und habe gerade auf Strato mit Hilfe dieses Forums ein Load Balancer Problem gelöst und benötige nun eine Beschreibung (am besten ein Skript), wie ich vom (Strato) Server 1 auf Server 2 per rsync mit cronjob regelmäßig synchronisieren kann. Ich habe hierzu schon gegoogelt, aber nur skripte gefunden, die auf andere Bedürfnisse zugeschnitten waren oder für mich unverständlich waren.
Auf den Linux Servern ist ja bekanntlich schon rsync installiert.
Allerdings komme ich nur auf das Programm, wenn ich die Zugangsrechte zum Server habe. Deshalb bin ich der Meinung, dass ich hier nicht nochmals einen User anlegen muss. Denn das würde bedeuten, dass das Passwort für den Zugang zum Server nicht sicher genug ist. Soweit ich weiss geschehen die syncronisationen bei Strato sowieso nur per SSH Verbinung, so dass ich glaube auch hier nichts einstellen zu müssen. Wenn ihr das anders seht klärt mich bitte auf, denn ich habe in jedem skript solche Einstellungen gesehen, was die Fragen aufgeworfen hat.
Was will ich?
Ich denke es ist hier wichtig genau zu beschreiben was ich will, also gut:
Auf dem Server1 befindet sich ein Programm, welches von Nutzern täglich verändert bzw. mit neuen Inhalten gespeist wird. Verändert heisst auch gelöscht (z.B. Inhalt oder ein ganzes Konto/ User). Falls also mal ein Server ausfällt, sollte beispielsweise ein eingegebner Forumseintrag noch vorhanden sein. D. h. auf den anderen Server synchronisiert sein. Die Intervalle sind also relative kurz zu schalten (2,4,6,8,... * * * *) und irgendwo sollte auch das --delete Berücksichtigung finden.
Auf beiden Servern läuft das Programm auf demselben Pfad /https.
Bisher habe ich geschrieben (Übrigens, wie kann man aus Putty inhalte in die Zwischenablage kopieren?):
gid = users
read only = true
..(also das was vorkonfiguriert war)...
slp refresh = 300
dann...
[gruene9]
path = /data/rsync
comment = Hauptverzeichnis fuer rsync
rsync -avz /httpdocs username@server2.stratoserver.net: /httpdocs
Was den automatischen Abgleich über crontab angeht, würde mich auch interessieren, wie ich diesen in /etc/crontab eintragen kann.
1-59/ * * * * (...?)
Für ein Skript, welches ich eventuell noch an bestimmten Stellen modifizieren muss wäre ich auch sehr dankbar.
Falls noch Fragen sind, ich beantworte sie sobald wie ich sie gesehen habe.
Vielen Dank!
Auf den Linux Servern ist ja bekanntlich schon rsync installiert.
Allerdings komme ich nur auf das Programm, wenn ich die Zugangsrechte zum Server habe. Deshalb bin ich der Meinung, dass ich hier nicht nochmals einen User anlegen muss. Denn das würde bedeuten, dass das Passwort für den Zugang zum Server nicht sicher genug ist. Soweit ich weiss geschehen die syncronisationen bei Strato sowieso nur per SSH Verbinung, so dass ich glaube auch hier nichts einstellen zu müssen. Wenn ihr das anders seht klärt mich bitte auf, denn ich habe in jedem skript solche Einstellungen gesehen, was die Fragen aufgeworfen hat.
Was will ich?
Ich denke es ist hier wichtig genau zu beschreiben was ich will, also gut:
Auf dem Server1 befindet sich ein Programm, welches von Nutzern täglich verändert bzw. mit neuen Inhalten gespeist wird. Verändert heisst auch gelöscht (z.B. Inhalt oder ein ganzes Konto/ User). Falls also mal ein Server ausfällt, sollte beispielsweise ein eingegebner Forumseintrag noch vorhanden sein. D. h. auf den anderen Server synchronisiert sein. Die Intervalle sind also relative kurz zu schalten (2,4,6,8,... * * * *) und irgendwo sollte auch das --delete Berücksichtigung finden.
Auf beiden Servern läuft das Programm auf demselben Pfad /https.
Bisher habe ich geschrieben (Übrigens, wie kann man aus Putty inhalte in die Zwischenablage kopieren?):
gid = users
read only = true
..(also das was vorkonfiguriert war)...
slp refresh = 300
dann...
[gruene9]
path = /data/rsync
comment = Hauptverzeichnis fuer rsync
rsync -avz /httpdocs username@server2.stratoserver.net: /httpdocs
Was den automatischen Abgleich über crontab angeht, würde mich auch interessieren, wie ich diesen in /etc/crontab eintragen kann.
1-59/ * * * * (...?)
Für ein Skript, welches ich eventuell noch an bestimmten Stellen modifizieren muss wäre ich auch sehr dankbar.
Falls noch Fragen sind, ich beantworte sie sobald wie ich sie gesehen habe.
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 153854
Url: https://administrator.de/forum/rsync-script-mit-cronjob-via-putty-auf-linux-server-mit-open-suse-11-1-153854.html
Ausgedruckt am: 08.04.2025 um 01:04 Uhr
6 Kommentare
Neuester Kommentar
Moin,
erstmal der übliche Hinweis: Probiere bitte NIE auf einem Live-System etwas aus was du nicht kennst!
Jetzt zur Lösung: Ich würde gucken ob ich das nicht dezent anders lösen kann:
a) NFS verwenden. Schon hast du auf einem Server alle Dateien und der andere mountet das nur entsprechend.
b) rsync via ssh laufen lassen -> schon umgehst du viele Probleme... Da du dir bei deiner Fragestellung wirklich viel Mühe gegeben hast (danke!) hier mal der genaue
Link wie das funktionieren könnte: http://troy.jdmz.net/rsync/index.html . Da steht auch gleich drin wie du das mit der Anmeldung via SSH-Key machst -> schon brauchst du kein
Passwort eingeben o.ä.
Den Rsync-Befehl kannst du dann auch in ne kleine Datei schreiben (z.B. DatenAbgleich.sh):
#!/bin/bash
... (dein rsync-Befehl)
diese dann mittels chmod 755 DatenAbgleich.sh ausführbar machen und das dann in deine Crontab eintragen.
Ich denke damit könntest du schon einiges machen...
Aber Achtung: Das funktioniert NUR bei Dateien. Wenn die Daten z.B. in einer Datenbank abgelegt werden geht das nicht so einfach...
erstmal der übliche Hinweis: Probiere bitte NIE auf einem Live-System etwas aus was du nicht kennst!
Jetzt zur Lösung: Ich würde gucken ob ich das nicht dezent anders lösen kann:
a) NFS verwenden. Schon hast du auf einem Server alle Dateien und der andere mountet das nur entsprechend.
b) rsync via ssh laufen lassen -> schon umgehst du viele Probleme... Da du dir bei deiner Fragestellung wirklich viel Mühe gegeben hast (danke!) hier mal der genaue
Link wie das funktionieren könnte: http://troy.jdmz.net/rsync/index.html . Da steht auch gleich drin wie du das mit der Anmeldung via SSH-Key machst -> schon brauchst du kein
Passwort eingeben o.ä.
Den Rsync-Befehl kannst du dann auch in ne kleine Datei schreiben (z.B. DatenAbgleich.sh):
#!/bin/bash
... (dein rsync-Befehl)
diese dann mittels chmod 755 DatenAbgleich.sh ausführbar machen und das dann in deine Crontab eintragen.
Ich denke damit könntest du schon einiges machen...
Aber Achtung: Das funktioniert NUR bei Dateien. Wenn die Daten z.B. in einer Datenbank abgelegt werden geht das nicht so einfach...
reden wir hier von mysql?
mach einen dump der datenbank und lies diesen in den anderen server ein.
kannst hier auch mal lesen:
http://dev.mysql.com/doc/refman/5.1/de/replication.html
gruß michael
mach einen dump der datenbank und lies diesen in den anderen server ein.
kannst hier auch mal lesen:
http://dev.mysql.com/doc/refman/5.1/de/replication.html
gruß michael