Shellscript: rsync mit ssh wird nicht ausgeführt

chrigu

Aktives Mitglied
Thread Starter
Dabei seit
08.03.2004
Beiträge
155
Reaktionspunkte
0
Folgendes Shellscript wird über einen Cronjob ausgeführt:
Code:
#!/bin/bash
# Backup starten
/bin/date >> /Users/chrigu/Desktop/test.txt;

/usr/local/bin/rsync -aE -z /Users chrigu@wiseguy-christoph.local:/Volumes/backup_disk/mammut_users_sync > /Users/sync_protokoll;
Die Datei test.txt wird auf dem Desktop erstellt, der rsync Befehl wird allerdings nicht ausgeführt, obwohl die gleiche Befehlszeile
Code:
/usr/local/bin/rsync -aE -z /Users chrigu@wiseguy-christoph.local:/Volumes/backup_disk/mammut_users_sync > /Users/sync_protokoll;
in der Kommandozeile eingegeben, einwandfrei funktioniert. Die ssh Verbindung funktioniert also tadellos.

Ich bin etwas ratlos, wenn ich übrigens im selben Shellscript auf eine ssh Verbindung verzichte und nur Lokal einen Verzeichnisabgleich mache also
Code:
#!/bin/bash
# Backup starten
/bin/date >> /Users/chrigu/Desktop/test.txt;

/usr/local/bin/rsync -aE -z /Users/chrigu/Desktop/Quelle /Users/chrigu/Desktop/Ziel >| /Users/sync_protokoll;
geht die Sache wiederum ohne Probleme.

Wer hat da den Durchblick oder wie könnte man das Problem etwas einkreisen?
 
Ich bin der Sache vielleicht etwas näher gekommen. Die ssh Schlüssel befinden sich im User-Verzeichnis /Users/chrigu/.ssh, der Cronjob wird allerdings von root ausgeführt womit ich vermute das root keinen passenden ssh Schlüssel findet.

Nun natürlich meine Frage wohin ich die id_rsa Schlüssel Dateien kopiere, damit auch root diese verwenden kann?
 
Warum sagst Du dem Cronjob nicht lieber, dass er als User chrigu laufen soll?
Dafür ist die sechste Spalte (who) in /etc/crontab zuständig oder Du verwendest die User crontab.

btw: wie kommst Du darauf, dass es an ssh liegt.
Ich sehe nämlich gar nicht, dass Dein Kommando ssh überhaupt verwendet :D.
 
um ssh nutzen zu können, musst du den entsprechenden befehl hinzufügen:
Code:
-e ssh

richtig wäre es dann z.B. so:
Code:
/usr/local/bin/rsync -e ssh -aE -z /Users [email]chrigu@wiseguy-christoph.loca[/email]l:/Volumes/backup_disk/mammut_users_sync > /Users/sync_protokoll;

aus der man-page von rsync:

Code:
-e, --rsh=COMMAND           specify the remote shell
 
Wen ich mich nicht irre, ist das root Verzeichniss unter /var/root .
Versuch mal da die SSH Keys hinzukopieren.
 
Ich möchte noch einmal kurz darauf hinweisen, dass es Unfug ist, ein Kommando, mit dem das Benutzerverzeichnis von "chrigu" gesichert werden soll, ohne Not mit root Permissions laufen zu lassen.
 
Schon mal vielen Dank für die vielen Inputs! werde das sogleich mal verarbeiten.

Ich hatte gedacht ssh werde automatisch benutzt, wenn user@host:/… angegeben wird, weil ja mit den erstellten Schlüsseln die Passwortabfrage entfällt (sofern man kein Passwort definiert hat) oder funktioniert das auch ohne Schlüssel?

@maceis
ok, aus ideologischer Sicht wäre es besser rsync mit anderen permissions als root laufen zu lassen, welcher user hat den sonst noch volle Zugriffsberechtigung auf das Verzeichnis /Users/*
 
Ich würde für jeden User einen Job erstellen, der unter dessen Namen läuft.
Bei Dir ist es aber offensichtlich so, dass chrigu Zugriff auf die zu sichernden Daten hat.
Ich bin mir auch gar nicht sicher, ob das Ganze bei Dir nicht ohnehin lokal läuft (chrigu@wiseguy-christoph.local :confused: ), dann ist ssh in jedem Fall überflüssig.
 
Zuletzt bearbeitet:
chrigu schrieb:
Schon mal vielen Dank für die vielen Inputs! werde das sogleich mal verarbeiten.

Ich hatte gedacht ssh werde automatisch benutzt, wenn user@host:/… angegeben wird, weil ja mit den erstellten Schlüsseln die Passwortabfrage entfällt (sofern man kein Passwort definiert hat) oder funktioniert das auch ohne Schlüssel?

@maceis
ok, aus ideologischer Sicht wäre es besser rsync mit anderen permissions als root laufen zu lassen, welcher user hat den sonst noch volle Zugriffsberechtigung auf das Verzeichnis /Users/*

Könnte hier nicht ein entsprechendes Gruppenrecht weiterhelfen statt gleich alles unter root laufen zu lassen? Ich sehe das ähnliche restriktiv wie maceis, allerdings must Du natürlich selbst entscheiden, wie Du die Sicherheitslage bewertest.
 
wiseguy-christoph.local ist die Domain meines Desktop Macs, worauf ich die Benutzerdaten meines Lappletop sichern möchte.

Ich hatte mir mal ein rsync mit rwsr-sr-x root admin in /usr/local/bin erstellt, weil mir, jedesmal wenn ich ein Verzeichnis abgleichen wollte, immer diese failed: permission denied Meldung im Wege standen. Vielleicht sollte man rsync die ausführbaren Rechte der "Anderen" (kommt mir gerade die Serie Lost in den Sinn :D ) wegnehmen, weil man davon ausgehen kann, dass alle Admins wissen was sie tun, aber eben, kann auch bei mir mal alles schief gehen, wobei ich denke ich bin nicht so blöd und überschreib mir das ganze Unix /* weg.

So ich muss jetzt mal meine Schlüssel ins Benutzerverzeichnis root kopieren, vielleicht klappt dann mein Vorhaben, obwohl ich mir da noch nicht so sicher bin, ob das jetzt die Lösung ist ;)
 
Ich sollt mir langsam sicher werden, hat geklappt :)
 
Zurück
Oben Unten