Probleme bei crontab und rsync Befehl auf einem Windows Server mit cygwin
Hallo zusammen,
ich verzweifel langsam. Ich bin was Linux angeht noch ein totaler Neuling und versuche mich jetzt nach und nach da einzuarbeiten.
Für den Fall habe ich auf unseren MSServer 2008r2 cygwin installiert.
Dieser sollte im Optimalfall alle 15 Minuten ein Backup auf ein NAS ziehen. Der NAS läuft mit OpenMediaVault.
Soweit habe ich mich also schon mit dem rsync befehl befasst und dieser funktioniert, sofern ich Ihn mit Hand eingebe tadellos.
hier kurz der code:
Wie bereits gesagt klappt dieser Befehl ohne Probleme und tut was er tun soll.
Jetzt wollte ich diesen Code gerne automatisch ausführen lassen - hier mal alle 15 Minuten.
Also habe ich mich mit crontab soweit auseinander gesetzt nur leider mag das irgendwie nicht funktionieren. Und ich weiß leider nicht woran es liegen könnte und hoffe hier auf ein paar Tipps oder Hinweise was ich falsch mache.
Ich habe den o.g. rsync-Befehl in eine datei geschrieben die rsync heißt. Der Inhalt sieht dann so aus.
aufgerufen wird die datei dann mit
Nur leider verweigert sich die Ausführung des Befehls.
Vielen Dank für eure Hilfe.
Grüße
sirhnry
ich verzweifel langsam. Ich bin was Linux angeht noch ein totaler Neuling und versuche mich jetzt nach und nach da einzuarbeiten.
Für den Fall habe ich auf unseren MSServer 2008r2 cygwin installiert.
Dieser sollte im Optimalfall alle 15 Minuten ein Backup auf ein NAS ziehen. Der NAS läuft mit OpenMediaVault.
Soweit habe ich mich also schon mit dem rsync befehl befasst und dieser funktioniert, sofern ich Ihn mit Hand eingebe tadellos.
hier kurz der code:
rsync -av -b /cygdrive/c/Ordner der gesynct werden soll rsync://User@IPvomNAS:/Backup/ --backup-dir=Dateisischerungen/Aenderungen_und_Backups_vom_`date +%F_%Hh%M` --progress --password-file=rsync_pass
Wie bereits gesagt klappt dieser Befehl ohne Probleme und tut was er tun soll.
Jetzt wollte ich diesen Code gerne automatisch ausführen lassen - hier mal alle 15 Minuten.
Also habe ich mich mit crontab soweit auseinander gesetzt nur leider mag das irgendwie nicht funktionieren. Und ich weiß leider nicht woran es liegen könnte und hoffe hier auf ein paar Tipps oder Hinweise was ich falsch mache.
Ich habe den o.g. rsync-Befehl in eine datei geschrieben die rsync heißt. Der Inhalt sieht dann so aus.
*/15 * * * * rsync -av -b /cygdrive/c/Ordner der gesynct werden soll rsync://User@IPvomNAS:/Backup/ --backup-dir=Dateisischerungen/Aenderungen_und_Backups_vom_`date +%F_%Hh%M` --progress --password-file=rsync_pass
aufgerufen wird die datei dann mit
crontab rsync
Nur leider verweigert sich die Ausführung des Befehls.
Vielen Dank für eure Hilfe.
Grüße
sirhnry
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 417073
Url: https://administrator.de/forum/probleme-bei-crontab-und-rsync-befehl-auf-einem-windows-server-mit-cygwin-417073.html
Ausgedruckt am: 21.04.2025 um 21:04 Uhr
14 Kommentare
Neuester Kommentar
Moin,
man crontab
1. Du musst in die crontab des Users, unter dem das laufen soll den Eintrag einfügen. Das sieht dann so aus:
<edit>oder für einen anderen user
</edit>
Daraufhin öffnet sich ein Editor. Dort trägst du ein
speicherst und schließt die Datei. "befehl" ersetzt Du natürlich mit dem Namen des Skripts. Gib den vollen, absoluten Pfad an. Die Shell, unter der cron ausgeführt wird, hat eine andere Umgebung als die des Users. Nach dem Schließen sollte diese Meldung erscheinen
Möchtest Du sehen, was in der crontab steht, dann lautet der Befehl
und zum Löschen
2. Es ist überhaupt keine gute Idee, Skripte zu schreiben und sie mit Systembefehlen zu benennen. Benenn das Skript um!
hth
Erik
man crontab
1. Du musst in die crontab des Users, unter dem das laufen soll den Eintrag einfügen. Das sieht dann so aus:
crontab -e
<edit>oder für einen anderen user
crontab -e -u username
Daraufhin öffnet sich ein Editor. Dort trägst du ein
*/15 * * * * befehl
speicherst und schließt die Datei. "befehl" ersetzt Du natürlich mit dem Namen des Skripts. Gib den vollen, absoluten Pfad an. Die Shell, unter der cron ausgeführt wird, hat eine andere Umgebung als die des Users. Nach dem Schließen sollte diese Meldung erscheinen
crontab: installing new crontab
Möchtest Du sehen, was in der crontab steht, dann lautet der Befehl
crontab -l
und zum Löschen
crontab -r
2. Es ist überhaupt keine gute Idee, Skripte zu schreiben und sie mit Systembefehlen zu benennen. Benenn das Skript um!
hth
Erik
Moin,
ja, der vi ist sehr gewöhnungsbedürftig, aber absolut geil, wenn man ihn erst einmal beherrscht. Hier ein kleiner Spickzettel:
https://kb.iu.edu/d/afdc
Prinzipiell kennt er zwei Modi. Einen zum Bearbeiten (löschen, kopieren, einfügen usw.) des Textes und einen zum Editieren. Ist man im Modus Bearbeiten, so drückt man auf "i", um in den Editiermodus zu kommen. Jetzt erst kannst Du was schreiben. Mit ESC kommst Du dann wieder in den Bearbeitungsmodus. Für Deinen Zweck:
Die letzte Zeile heißt übersetzt: Doppelpunkt leitet einen Befehl bzw. Befehlskette ein. w ist der Schreibbefehl. q steht für quit. Gaaaaaaaanz wichtig, da man am Anfang gerne mal lostippt und vergisst vorher das i zu drücken und man so die lustigsten Ergebnisse erreicht. Mit
verlässt man den vi ohne zu speichern.
Viel Spaß damit.
Erik
ja, der vi ist sehr gewöhnungsbedürftig, aber absolut geil, wenn man ihn erst einmal beherrscht. Hier ein kleiner Spickzettel:
https://kb.iu.edu/d/afdc
Prinzipiell kennt er zwei Modi. Einen zum Bearbeiten (löschen, kopieren, einfügen usw.) des Textes und einen zum Editieren. Ist man im Modus Bearbeiten, so drückt man auf "i", um in den Editiermodus zu kommen. Jetzt erst kannst Du was schreiben. Mit ESC kommst Du dann wieder in den Bearbeitungsmodus. Für Deinen Zweck:
i
[Zeile eintragen]
ESC
:wq
Die letzte Zeile heißt übersetzt: Doppelpunkt leitet einen Befehl bzw. Befehlskette ein. w ist der Schreibbefehl. q steht für quit. Gaaaaaaaanz wichtig, da man am Anfang gerne mal lostippt und vergisst vorher das i zu drücken und man so die lustigsten Ergebnisse erreicht. Mit
:q!
verlässt man den vi ohne zu speichern.
Viel Spaß damit.
Erik
Es gibt bei cygwin den Befehl cygpath, mit dem man Windows-Pfade in cygwin-Pfade und umgekehrt umwandeln kann. Nimm mal Deinen Originalpfad aus Windows und lasse Dir den von dem Tool als cygwin-Pfad ausgeben.
Moin,
Das heißt, dass unter cgywin der Pfad /home/Admin lautet. Das hast Du so ins Skript eingetragen? Groß- und Kleinschreibung hast Du beachtet?
Liebe Grüße
Erik
Zitat von @sirhnry:
hab ich probiert - alle pfade entsprechend angepasst - leider findet er angeblich die PWdatei immernoch nicht.
hab ich probiert - alle pfade entsprechend angepasst - leider findet er angeblich die PWdatei immernoch nicht.
$ cygpath -u 'C:\cygwin64\home\Admin'
> /home/Admin
>
Das heißt, dass unter cgywin der Pfad /home/Admin lautet. Das hast Du so ins Skript eingetragen? Groß- und Kleinschreibung hast Du beachtet?
Liebe Grüße
Erik
Zitat von @sirhnry:
Ja genau so. Bin heute nicht am Server werde es Montag nochmal probieren. Ich denke dass es sich um ein Rechteproblem handelt.
Ja genau so. Bin heute nicht am Server werde es Montag nochmal probieren. Ich denke dass es sich um ein Rechteproblem handelt.
Eher nicht, denn dann würde in der Fehlermeldung nicht "No such file or directory" sondern "permission denied" (oder so ähnlich) stehen. Beachte auf jeden Fall die Klein/Großschreibung bei den Pfaden. Das ist bei Unixen nicht egal.
Danke nochmal für die Hilfe. Wenn es nicht gehen sollte melde ich mich nochmal. Schönes Wochenende.
Viel Erfolg