Pannelecker
Anmeldungsdatum: 24. Oktober 2023
Beiträge: Zähle...
|
Hallo Habe einen UbuntuServer als VM mit Paperless laufen und will einen täglichen Backup des /archive Ordners machen um 04:00 Benutzer sind root und pegasus diese Befehle funktionieren soweit über Shell root cp -R /Paperless/paperless-ngx/media/documents/archive/* /Paperless/Papermount pegasus sudo cp -R /Paperless/paperless-ngx/media/documents/archive/* /Paperless/Papermount
(hier kommt noch eine Passwort Abfrage) Mein Gedanke war es Cronjob laufen zu lassen Wie wäre denn der richtige Befehl bzw Vorgehensweise? 00 4 * * * cp -R /Paperless/paperless-ngx/media/documents/archive/* /Paperless/Papermount Der funktioniert nicht LG
|
Doc_Symbiosis
Anmeldungsdatum: 11. Oktober 2006
Beiträge: 4444
Wohnort: Göttingen
|
Willkommen hier im Forum! Probier bei cp mal den vollständigen Pfad, also /usr/bin/cp
|
Pannelecker
(Themenstarter)
Anmeldungsdatum: 24. Oktober 2023
Beiträge: 4
|
Doc_Symbiosis schrieb: Willkommen hier im Forum! Probier bei cp mal den vollständigen Pfad, also /usr/bin/cp
Habe den Befehl jetzt so in crontab von root übernommen #PaperlessBackup 00 4 * * * /usr/bin/cp -R /Paperless/paperless-ngx/media/documents/archive/* /Paperless/Papermount Es passiert nix Gebe ich den Befehl ein in Shell führt er ihn aus und kopiert mir die Daten Irgendwas fehlt noch:) Natürlich mit einem Zeitnahen Befehl
30 14 * * *
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo, wenn du das ganze als systemd Timer Unit laufen lässt statt mit dem älteren Cron bekommst du zumindest einen (oder mehrere) Logeinträge im Journal von systemd, die bei der Fehlersuche helfen. Gruß, noisefloor
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo, Nachtrag: im deutschen Raspi-Forum gibt's genau den gleichen Thread vom gleichen TE: https://forum-raspberrypi.de/forum/thread/59862-backup-mit-cronjob/ Da die Fehleranalyse dort weiter fortgeschritten ist als hier sollte vielleicht besser der andere Thread dort verfolgt werden. BTW: solche Cross-Postings sind uncool, sofern man es nicht als Ziel hat, möglichst viele Leute gleichzeitig mit seinem Problem zu beschäftigen. Gruß, noisefloor
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11229
Wohnort: München
|
Ich würde mir überlegen, ob das Globbing in der Cron-Umgebung funktionieren kann - da hat man ja standardmäßig keine normale Shell zur Verfügung - was man ändern kann: Cron (Abschnitt „Befehl-klappt-in-Skript-und-Shell-aber-nicht-im-Cronjob“). Generell würde ich cron einfach seinen wohlverdienten Ruhestand gönnen und stattdessen Systemd/Service Units über Systemd/Timer Units ausführen lassen, dann wird das ganze deutlich besser nachvollziehbar.
|
kB
Supporter, Wikiteam
Anmeldungsdatum: 4. Oktober 2007
Beiträge: 9384
Wohnort: Münster
|
Pannelecker schrieb: […]
00 4 * * * cp -R /Paperless/paperless-ngx/media/documents/archive/* /Paperless/Papermount
|
Pannelecker
(Themenstarter)
Anmeldungsdatum: 24. Oktober 2023
Beiträge: 4
|
kB schrieb: Pannelecker schrieb: […]
00 4 * * * cp -R /Paperless/paperless-ngx/media/documents/archive/* /Paperless/Papermount
Als sudo su
root@ubuntupaperless:~# nano /etc/crontab
denke nein
|
Doc_Symbiosis
Anmeldungsdatum: 11. Oktober 2006
Beiträge: 4444
Wohnort: Göttingen
|
Wenn Du die /etc/crontab verwendest, dann musst Du noch den Benutzernamen mit eintragen, unter dem das laufen soll:
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
Du kannst aber auch direkt die crontab von root bearbeiten:
sudo crontab -e
|
kB
Supporter, Wikiteam
Anmeldungsdatum: 4. Oktober 2007
Beiträge: 9384
Wohnort: Münster
|
Pannelecker schrieb: [[…]
Als sudo su
root@ubuntupaperless:~# nano /etc/crontab
In der Systemdatei von Cron muss in jeder ausführbaren Zeile ein Benutzername angegeben werden, das hast Du nicht gemacht.
denke nein
Dann ist das der 2. Fehler. Jede ausführbare Zeile in einer crontab muss mit einem Linefeed enden.
|
Pannelecker
(Themenstarter)
Anmeldungsdatum: 24. Oktober 2023
Beiträge: 4
|
seahawk1986 schrieb: Ich würde mir überlegen, ob das Globbing in der Cron-Umgebung funktionieren kann - da hat man ja standardmäßig keine normale Shell zur Verfügung - was man ändern kann: Cron (Abschnitt „Befehl-klappt-in-Skript-und-Shell-aber-nicht-im-Cronjob“). Generell würde ich cron einfach seinen wohlverdienten Ruhestand gönnen und stattdessen Systemd/Service Units über Systemd/Timer Units ausführen lassen, dann wird das ganze deutlich besser nachvollziehbar.
Habe mir das mal angeschaut......blicke da leider noch nicht durch:)
|
Doc_Symbiosis
Anmeldungsdatum: 11. Oktober 2006
Beiträge: 4444
Wohnort: Göttingen
|
Na, dann mach es doch mit der crontab.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17584
Wohnort: Berlin
|
Wenn Du die crontab nicht mit nano /etc/crontab , sondern mit crontab -e bearbeitest, dann bekommst Du einen Check auf korrekte Syntax der crontab. Welche Shell verwendet cron?
| #
* * * * * echo $SHELL >> /home/stefan/testcron.log
|
Bei 22.04 /bin/sh. Funktioniert globbing in der crontab?
| * * * * * ls -d /home/stefan/tmp/* >> /home/stefan/testcron.log
|
Bei mir schon. ☺ Gibt es auch POSIX-Shells in denen Globbing nicht funktioniert? Wird cp im Pfad gefunden?
| * * * * * echo $PATH >> /home/stefan/testcron.log
|
Ergebnis:
| /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
|
Nachvollziehbarkeit des alten Eisens cron: | #
* * * * * bogus >> /home/stefan/testcron.log 2>&1
|
Man muss sicher davon ausgehen, dass die alten Unixknacker 50 Jahre lang cron genutzt haben, ohne dass sie je Nachvollziehbarkeit interessiert hätte.
| /bin/sh: 1: bogus: not found
|
1
2
3
4
5
6
7
8
9
10
11
12
13 | journalctl -S 2:45 -g cron
Okt 25 02:45:02 t530 cron[1866]: (stefan) RELOAD (crontabs/stefan)
Okt 25 02:45:02 t530 CRON[42784]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Okt 25 02:45:02 t530 CRON[42785]: pam_unix(cron:session): session opened for user stefan(uid=1000) by (uid=0)
Okt 25 02:45:02 t530 CRON[42786]: pam_unix(cron:session): session opened for user stefan(uid=1000) by (uid=0)
Okt 25 02:45:02 t530 CRON[42789]: (stefan) CMD (bogus >> /home/stefan/testcron.log 2>&1 )
Okt 25 02:45:02 t530 CRON[42784]: pam_unix(cron:session): session closed for user root
Okt 25 02:45:02 t530 CRON[42785]: pam_unix(cron:session): session closed for user stefan
Okt 25 02:45:02 t530 CRON[42786]: pam_unix(cron:session): session closed for user stefan
Okt 25 02:45:37 t530 sudo[42820]: stefan : TTY=pts/1 ; PWD=/media/stefan ; USER=root ; COMMAND=/usr/bin/find /var/l>
Okt 25 02:46:01 t530 CRON[42832]: pam_unix(cron:session): session opened for user stefan(uid=1000) by (uid=0)
Okt 25 02:46:01 t530 CRON[42833]: (stefan) CMD (bogus >> /home/stefan/testcron.log 2>&1 )
Okt 25 02:46:01 t530 CRON[42832]: pam_unix(cron:session): session closed for user stefan
|
|