Problem mit rsync beim ausführen im root-crontab

  • Ersteller CorneliusHoffmann
  • Erstellt am
CorneliusHoffmann

CorneliusHoffmann

Registriert
Thread Starter
Dabei seit
11.01.2020
Beiträge
3
Reaktionspunkte
0
Servus zusammen,

ich hadere aktuell ein wenig mit meinem Wissen, denn ich habe schon einige Shell- wie Apple-Scripts geschrieben und nach ein wenig Analyse, wenn was nicht funktionierte, habe ich eigentlich immer den Fehler gefunden – in diesem Fall leider nicht.

Hier mal das Szenario – ich betreibe für mich einen Onlineserver, auf dem ist mein wiki (mediawiki) meine Mail/Adressen/Kalender-Lösung (Kerio) und eine ownCloud mit der ich unterwegs meine Daten auch mal abgreifen kann. Das alles läuft auf einem LinuxServer (aktuelles Ubuntu 18 LTS).

Für mich intern betreibe ich noch einen MacServer OS (10.10.5) der den DNS- und LDAP-Server im Netzwerk spielt. Ausserdem ist dieser der Sicherungsbuddy des Linuxservers. Bedeutet ich habe mir per ssh-keygen Schlüssel generiert welche es ermöglichen, dass die beiden Server miteinander sprechen können ohne ein Passwort zu benötigen. Das funktioniert auch, denn ich sichere verschiedene Inhalte der Linuxe und das tut alles auf Basis des Schlüssels. Der einzige unterschied der Schritte im Script ist, dass die anderen Inhalte kopiert werden (scp) anstatt der Daten, welche per "rsync" synchronisiert werden sollen.

Führe ich nun den Befehl als root-Benutzer direkt in Terminal aus funktioniert es, rsync rattert los, die Daten werden übertragen, alles gut – die Befehls-Syntax sollte deswegen also eigentlich stimmen. Das Script läuft vom root-crontab aus, ergo sollten die Rechte für die Ausführung also eigentlich auch stimmen, alle anderen Zeilen des Scripts werden ausgeführt. Ich habe gefühlt das halbe Netz durchsucht aber nichts passendes darauf gefunden vielleicht gibt es hier jemanden der meinem blonden Hirn auf die Sprünge helfen kann...

Ich denke an ein Debugging, jedoch manuell finde ich keinen Fehler und habe keine echte Idee wie ich das in ein Script so einbauen könnte dass er mir das in eine Logdatei wegschreibt um so zu sehen warum es im cron hakt.

Hier die Befehlszeile – ich habe Pfade und Schlüsselnamen mal verfremdet:

rsync -avuz --delete --progress --stats -e 'ssh -i '/private/var/root/.ssh/schluessel‘‘ root@192.168.77.55:/Pfad/zur/Quelle /Pfad/zum/Ziel/

Ach ja noch vergessen die Rechte des Datenverzeichnisses stehen natürlich auf www-data für den Eigentümer und die Gruppe, die darf root aber anfassen und tut es auch, denn das Seitenverzeichnis /var/www/ hat die selben Rechte, wird genauso angesprochen (allerdings per scp) und wird so auch abgegriffen und ohne Fehler übertragen.

Danke schon mal vorab für Eure Zeit mit der Hoffnung auf den zündenden Hinweis.

Viele Grüße
Cormelius Hoffmann
 
also man sollte beachten, dass die crontab root shell meist anderen einstellungen hat als die normale shell.
deswegen mal die kommandos mit vollem pfad in die befehlszeile.

cron ist auf macOS deprecated, an sich solltest du das als launchd job machen.
 
Servus oneOeight,

danke für Deine Nachricht – habe es gleich ausprobiert, weil Du mit dem Pfad für die Kommandos vollkommen recht hast – ICH mal wieder blind...
Leider hat das auch nicht funktioniert – die rsync - Zeilen lässt er einfach aus...

Da ich die Serverwelt bei mir nach und nach umstellen werde (Mac nach Linux) möchte ich einfach nur versuchen das jetzt auf der Plattform zum laufen zu bringen um nicht ein sterbendes Pferd zu pflegen.
Hättest Du vielleicht eine Idee wie ich eine Fehlermeldung von rsync in ein Logfile bringe? Wenn nicht muss ich es in der nächsten Zeit einfach einmal in der Woche manuell erledigen – danke Dir dennoch.

Viele Grüße
Cornelius Hoffmann
 
Schau mal, ob es eine /var/log/cron gibt und setz den Debug level von rsync hoch.
 
Gibt es leider nicht – aber Du bringst mich an der Stelle auf eine Idee – eigentlich müsste das im Systemlog irgendwo zu finden sein – ich finde da auch Kommentare allerdings nicht per Cron sondern anhand der Uhrzeit und verschiedener zuzuordnender Prozesse – muss mir jetzt für die Analyse ein wenig Zeit nehmen, habe aber die Hoffnung dass ich was finde.

Bin aber jetzt auf die schnelle auch schon einen Schritt weiter gekommen, denn ich habe festgestellt dass die Tagesversionierung nicht zu funktionieren scheint. Lasse ich die weg tut die Sicherung nun was Sie soll, allerdings leider nur in einen Ordner und nicht versioniert in den jeweiligen Tages-Ordnern. Komisch auch das hatte vom Terminal weg funktioniert – aber vielleicht kann die bash ja mit einem Kommando im Cron nicht umgehen.

Ich denke ich habe jetzt erst mal einen Workaround der tut – danke Dir soweit – manchmal ist man einfach betriebsblind und braucht einen kurzen schubs – DANKE dafür
 
Zurück
Oben Unten