lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 14258
|
Emma2 schrieb: Ja, ich weiß, dass ich den Dienst nach dem Editieren neu starten muss.)
BTW: Wenn Du die systemweite /etc/crontab änderst/editierst, musst Du den Dienst nicht neu starten. Die Änderung ist sofort (nach dem speichern) wirksam. Emma2 schrieb: Oder andersherum: Warum wird denn crontab -e über nano /etc/crontab empfohlen?
Ich verstehe nicht was Du meinst. Das sind zwei verschiedene crontabs. Mit "crontab -e" editierst Du die crontab des users, der "crontab -e" gerade ausführt und "/etc/crontab" ist immer die systemweite crontab, die nur mit root-Rechten editiert werden kann.
|
Emma2
(Themenstarter)
Anmeldungsdatum: 28. Dezember 2018
Beiträge: 603
|
lubux schrieb: Wie ist die Ausgabe von:
cat /etc/fstab
| $ cat /etc/fstab | grep -i svr-bak
#das ist das QNAP-NAS svr-bak
192.168.0.26:/svh-net /svr-bak nfs nfsvers=3 0 2
|
Weil der (Noch-Windows-)DC mit (Noch-Windows-)DNS ebenfalls erst noch gestartet werden muss, steht hier die feste IP des Backup-NAS. lubux schrieb: kannst Du die generierte mount-unit, mit einer drop-in-Datei evtl. ergänzen bzw. optimieren (... wenn es um dein 20.04 gehen sollte).
Ist "sogar" 22.04, und wie gesagt, muss ich da erst noch lesen... nehme aber gern Vorschläge an 😉
|
Emma2
(Themenstarter)
Anmeldungsdatum: 28. Dezember 2018
Beiträge: 603
|
lubux schrieb: Ich verstehe nicht was Du meinst. Das sind zwei verschiedene crontabs. Mit "crontab -e" editierst Du die crontab des users, der "crontab -e" gerade ausführt und "/etc/crontab" ist immer die systemweite crontab, die nur mit root-Rechten editiert werden kann.
Ok, dann war ich ungenau, meinte ich eher sudo crontab -e? Auf alle Fälle habe ich mal "irgendwo" gelesen, dass man eben die crontab nicht "direkt durch Aufruf des Editors" bearbeiten solle, sondern dazu immer den Befehl crontab -e oder eben sudo crontab -e nutzen solle. Ist das falsch? Ist es völlig wurscht, wie ich den Aufruf mache? Habe es nicht nachgelesen, aber gerade dieses gefunden Actually, it's not recommended to handle those files by hand. Per crontab man page:
Each user can have their own crontab, and though
these are files in /var/spool/cron/crontabs, they are not
intended to be edited directly.
Quelle: https://askubuntu.com/questions/216692/where-is-the-user-crontab-stored
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 14258
|
Emma2 schrieb: Auf alle Fälle habe ich mal "irgendwo" gelesen, dass man eben die crontab nicht "direkt durch Aufruf des Editors" bearbeiten solle, sondern dazu immer den Befehl crontab -e oder eben sudo crontab -e nutzen solle. Ist das falsch? Ist es völlig wurscht, wie ich den Aufruf mache?
Diese Frage habe ich dir doch schon weiter oben, beantwortet. Wenn es um die user-crontab und um die root-crontab geht, dann indirekt, mit "crontab -e" und wenn es um die systemweite crontab "/etc/crontab" geht, dann mit "sudo nano /etc/crontab". Statt nano kann/darf man auch einen anderen _geeigneten_ Editor benutzen.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 14258
|
Emma2 schrieb: Ganz plump per
| @reboot vboxmanage startvm svr-opn --type headless
|
in meiner crontab. ... wenn schon so plump, wäre ja vielleicht sogar
| 0 0 * * * vboxmanage startvm svr-opn --type headless
|
besser... für den Fall, dass es beim Booten aus irgend einem Grund fehlschlägt.
Zwischen "@reboot" und "0 0 * * *" ist aber ein wesentlicher Unterschied. Siehe z. B.: https://crontab.guru/#0_0_*_*_*
|
Emma2
(Themenstarter)
Anmeldungsdatum: 28. Dezember 2018
Beiträge: 603
|
lubux schrieb: Zwischen "@reboot" und "0 0 * * *" ist aber ein wesentlicher Unterschied. Siehe z. B.: https://crontab.guru/#0_0_*_*_*
Na, das ist mir klar, deshalb ja auch meine "Erläuterung"... ... und deshalb der "Aufhänger" meines ganzen Threads (es ging ja um ein Mount): Meine "plumpe" Idee war es, die Zeile
(die ja wohl sowieso sinnfrei ist) zu ersetzen mit
Dann würde wenigstens einen Tag nach dem Start das Backup-Laufwerk gemountet (oder entsprechend stündlich oder ein Skript, dass erst prüft, ob schon gemountet ist...). ... und das war ja meine eigentliche Frage: Muss soll oder kann ich nach crontab -e
schreiben? ... und wenn ich Euch richtig verstanden habe, dann sollte ich stattdessen sudo nano /etc/crontab nutzen und dort dann
eintragen? p.s.: Ich habe verstanden, dass das nur ein Schnellschuss ist und der Weg über systemd besser... aber dazu muss ich eben erst noch lesen, möchte aber trotzdem, dass meine Backups schon jetzt nicht ins Leere laufen...
|
Emma2
(Themenstarter)
Anmeldungsdatum: 28. Dezember 2018
Beiträge: 603
|
Wenn ich jetzt von Euch keinen konkreten Vorschlag bekomme, was ich - und wie ich es - mit systemd besser machen kann, dann bedanke ich mich bis hier und kennzeichne diesen Thread als gelöst. Danke!
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 14258
|
Emma2 schrieb: ... und das war ja meine eigentliche Frage: Muss soll oder kann ich nach crontab -e
schreiben?
Auch diese Frage wurde schon beantwortet. Nein, Du nimmst dann eine root-crontab und dort wird sudo nicht benötigt. Emma2 schrieb: ... und wenn ich Euch richtig verstanden habe, dann sollte ich stattdessen sudo nano /etc/crontab nutzen und dort dann
eintragen?
Wenn Du die systemweite crontab benutzen willst, musst Du auch denn user (in deinem fall root) eintragen:
0 0 * * * root mount -a
In einer crontab sollte man immer/besser absolute Pfade verwenden/setzen (auch wenn die Variable PATH in der jeweiligen crontab gesetzt ist). BTW: Schreibe ein shell-Script, das deine Befehle richtig ausführen kann und dann zeigt man dir wie Du eine service-unit zum ausführen dieses shell-Scripts, schreiben kannst ... und diese service-unit kannst Du dann falls erforderlich, auch mit einer timer-unit starten.
|
Berlin_1946
Supporter, Wikiteam
Anmeldungsdatum: 18. September 2009
Beiträge: 10140
|
Emma2 schrieb: Wenn ich jetzt von Euch keinen konkreten Vorschlag bekomme, was ich - und wie ich es - mit systemd besser machen kann, dann bedanke ich mich bis hier und kennzeichne diesen Thread als gelöst. Danke!
Nach den Foren- Regeln ist das ein neuer Beitrag. 😎
|
Emma2
(Themenstarter)
Anmeldungsdatum: 28. Dezember 2018
Beiträge: 603
|
lubux schrieb: Auch diese Frage wurde schon beantwortet. Nein, Du nimmst dann eine root-crontab und dort wird sudo nicht benötigt.
Schon klar, habe ich verstanden, habe es nur noch einmal zusammengefasst (könnte ja sein, dass jemand anderes auf diesen Thread stößt...). lubux schrieb: Wenn Du die systemweite crontab benutzen willst, musst Du auch denn user (in deinem fall root) eintragen:
0 0 * * * root mount -a
Ok, muss ich in dieser crontab also immer den User angeben? (NB: Was passiert mit einem Befehl ohne User-Angabe? Wird der ignoriert?) lubux schrieb: In einer crontab sollte man immer/besser absolute Pfade verwenden/setzen (auch wenn die Variable PATH in der jeweiligen crontab gesetzt ist).
Absoluter Pfad für was? Für den mount-Befehl?
|
Emma2
(Themenstarter)
Anmeldungsdatum: 28. Dezember 2018
Beiträge: 603
|
lubux schrieb: BTW: Schreibe ein shell-Script, das deine Befehle richtig ausführen kann und dann zeigt man dir wie Du eine service-unit zum ausführen dieses shell-Scripts, schreiben kannst ... und diese service-unit kannst Du dann falls erforderlich, auch mit einer timer-unit starten.
Also in der Art
| #wenn korrekt gemountet, dann ist darin das Verzeichnis week sichtbar
if [ ls /svr-bak | grep week -ne "week" ] then mount -a
|
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 14258
|
Emma2 schrieb: Ok, muss ich in dieser crontab also immer den User angeben? (NB: Was passiert mit einem Befehl ohne User-Angabe? Wird der ignoriert?)
Naja, in deinem Fall, wird angenommen, dass "mount" der username ist und "-a" der Befehl, mit der Folge, dass es mount als user nicht gibt und "-a" als Befehl nicht gibt. Bei der Ausführung wird das dann erkannt und im syslog/dmesg findest Du Fehlermeldungen dieser Art:
... Error: bad username; while reading /etc/crontab
... (*system*) ERROR (Syntax error, this crontab file will be ignored) Emma2 schrieb: Absoluter Pfad für was? Für den mount-Befehl?
Ja, für mount. Siehe:
which mount
|
Emma2
(Themenstarter)
Anmeldungsdatum: 28. Dezember 2018
Beiträge: 603
|
lubux schrieb: Ja, für mount. Siehe:
which mount
Dann also in etwa
| #wenn korrekt gemountet, dann ist darin das Verzeichnis week sichtbar
if [ /usr/bin/ls /svr-bak | /usr/bin/grep week -ne "week" ] then /usr/bin/mount -a
|
? Oder sind das jetzt zu viele Pfade?
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 14258
|
Emma2 schrieb: | #wenn korrekt gemountet, dann ist darin das Verzeichnis week sichtbar
if [ /usr/bin/ls /svr-bak | /usr/bin/grep week -ne "week" ] then /usr/bin/mount -a
|
? Oder sind das jetzt zu viele Pfade?
Zu viele sind es nicht. Die Frage ist, ob diese Pfade auch richtig sind?
ls -la /usr/bin/ls /usr/bin/grep /usr/bin/mount
?
|
Emma2
(Themenstarter)
Anmeldungsdatum: 28. Dezember 2018
Beiträge: 603
|
lubux schrieb: Zu viele sind es nicht. Die Frage ist, ob diese Pfade auch richtig sind?
ls -la /usr/bin/ls /usr/bin/grep /usr/bin/mount
?
Oh, bin ich zu naiv?
| $ which ls
/usr/bin/ls
$ which grep
/usr/bin/grep
$ which mount
/usr/bin/mount
|
und auch
| $ sudo -i
root@svh-net:~# which ls
/usr/bin/ls
root@svh-net:~# which grep
/usr/bin/grep
root@svh-net:~# which mount
/usr/bin/mount
|
sowie
| $ ls -la /usr/bin/ls /usr/bin/grep /usr/bin/mount
-rwxr-xr-x 1 root root 182728 Mar 23 2022 /usr/bin/grep
-rwxr-xr-x 1 root root 138208 Feb 7 2022 /usr/bin/ls
-rwsr-xr-x 1 root root 47480 Feb 21 2022 /usr/bin/mount
localadmin@svh-net:~$ sudo -i
root@svh-net:~# ls -la /usr/bin/ls /usr/bin/grep /usr/bin/mount
-rwxr-xr-x 1 root root 182728 Mar 23 2022 /usr/bin/grep
-rwxr-xr-x 1 root root 138208 Feb 7 2022 /usr/bin/ls
-rwsr-xr-x 1 root root 47480 Feb 21 2022 /usr/bin/mount
|
|