ubuntuusers.de

Dateien von einem Server auf einen anderen kopieren

Status: Gelöst | Ubuntu-Version: Ubuntu 9.04 (Jaunty Jackalope)
Antworten |

af99

Anmeldungsdatum:
13. April 2010

Beiträge: 13

Hallo Zusammen,

ich möchte ein Shell-Script schreiben welches nachts Dateien aus einem bestimmten Ordner (und dessen Unterodner und die Dateien der Unterordner) auf einen anderen Server kopiert (sind beides Ubuntu 9.04). Programmieren an sich kann ich (Delphi). Kenn mich aber nciht mit Shell-Scripten aus da ich Linux erst seit kurzem verwende (bin aber sehr begeistert). Hintergrund sind mien 2 Nagiosserver die ich aufgesetzt habe. Ich möchte die Konfig des einen auf den anderen kopieren. Ich hoffe Ihr könnt mir ein wenig auf die Sprünge helfen. Vielen Dank und viele Grüße Andreas

prometheus0815

Anmeldungsdatum:
12. Juni 2006

Beiträge: 7478

Das geht mit scp und Public-Key-Authentifizierung.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Hi af99,

das wäre doch ein Fall für rsync würde ich sagen.
http://wiki.ubuntuusers.de/rsync und man rsync

Da brauchst Du wahrscheinlich gar nicht mal viel "Skript" drum herum,
Du musst es nur als cron-job eintragen. → http://wiki.ubuntuusers.de/Cron

track

af99

(Themenstarter)

Anmeldungsdatum:
13. April 2010

Beiträge: 13

Hi track,

klappte "von Hand" mit rsync sehr gut. Leider verlangt er immer ein Kennwort. Habe mal rumgegoogelt aber nur ein script gefunden was bei mir nicht klappt http://www.rootprompt.org/article.php3?article=5760 . Das Script sieht bein mir so aus

#!/usr/bin/expect -f

spawn date expect "#"

send_user "KENNWORT: " stty -echo expect_user -re "(.*)\n" {set PASSPH $expect_out(1,string)} send_user "\n" stty echo

set timeout -1

spawn date expect "#"

spawn rsync -avze ssh /tmp/quelle/ root@srvnag02soe:/tmp/kopie/ expect "password:" { send "$PASSPH\n"}

bekomme aber immer

-bash: ./ckopy.sh: /usr/bin/expect: bad interpreter: No such file or directory

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17621

Wohnort: Berlin

#!/bin/bash
#
# tar ein Verzeichnis, verschieben mit ssh, auf der Gegenseite abspeichern.
# Vorteile:
#	tar erzeugt nur eine große Datei, Rechte u. User bleiben erhalten.
#	Da nicht gezippt wird, ist die Geschwindigkeit hoch.
#	Da kein temporäres File erzeugt wird, können große Dateimengen bewegt werden, ohne auf der Festplatte
#		erstmal eine Datei anzulegen.
# Beispiel:
tar -cf - ./quelle | ssh SERVERNAME " ( cd /mnt/backup ; tar -xf - ) "

rsync ist wahrscheinlich die bessere Idee. Hier wird das Verzeichnis './quelle' mit tar in eine Datei verpackt, die aber sofort weggestreamt wird, an ssh, welches sich mit SERVERNAME verbindet, und dort das folgende Kommando ausführt: nach /mnt/backup wechseln, dort von stdin lesen, also dem Strom, der gerade reinkommt, und das ganze mit tar on the fly auspacken.

Das ist so eine Art Fallrückzieher mit doppelter Schraube. ☺

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Sind denn die Datenmengen so groß, dass sich das packen usw. überhaupt lohnt ?

Sonst könnte man es doch einfacher halten. Man muss nur dem rsync irgendwie das einloggen beibringen,
denn mit Netzwerk-Adressen umgehen kann es ja von Haus aus.
Da hatte ich auch noch rsh gefunden. Wäre das evt. geeignet ? (ich habe es selbst noch nicht benutzt)

track

af99

(Themenstarter)

Anmeldungsdatum:
13. April 2010

Beiträge: 13

Die Datenmengen sind nicht groß. nur ein paar KB.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Kannst Du denn mit dieser Anleitung etwas anfangen: http://troy.jdmz.net/rsync/index.html ?

track

af99

(Themenstarter)

Anmeldungsdatum:
13. April 2010

Beiträge: 13

Puh. ist ja eine Menge die man machen muß (und bei der man viel falsch machen kann). Dabei möchte ich doch nur automatisiert ein paar Dateien von einem Server auf einen Anderen kopieren. Die 2 Server stehen in unserem LAN und sind von außen nicht erreichbar. Von da her muß ich nicht so ein riesen Rad mit Verschlüsselung, Keys,...drehen.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Du musst ja auch nicht den ganzel Krempel nehmen.

Aber dem rsyc das Einloggen beibringen wirst Du wohl schon müssen.
Und da ist die Frage, wie man das an einfachsten automatisch hinkriegt.
In der Richtung hatte ich mir von der Anleitung was erhofft.

edit: der Vorschlag, ein Schlüsselpaar für ssh anzulegen ist doch gar nicht so kompliziert.
Damit kannst Du dann nämlich schon automatisch einloggen. Die beiden Schlüssel müssen nur noch an ihren Platz kommen.

Aber ich habe damit selber noch keine Erfahrung, ich weiss nur dass es geht.
Von daher kann Dir jemand anders da garantiert sinnvollere Tips geben.

track

af99

(Themenstarter)

Anmeldungsdatum:
13. April 2010

Beiträge: 13

habs geschaft. Mit folgender Anleitung habe ich ein Schlüsselpaar generiert und es per ssh rsync mitgegeben. http://www.maltesieb.de/ubuntu/automatische-backup-losung-mit-rsync-und-ssh/ Vielen Dank für Eure Hilfe. Viele Grüße Andreas

prometheus0815

Anmeldungsdatum:
12. Juni 2006

Beiträge: 7478

af99, falls Dein Problem gelöst ist, markiere bitte den Thread entsprechend.

af99

(Themenstarter)

Anmeldungsdatum:
13. April 2010

Beiträge: 13

ups vergessen. Habs gerade gemacht.

Antworten |