Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

CronJob anlegen (Daten im Ordner löschen)

Empfohlene Antworten

Veröffentlicht

Moin.

Ich möchte auf einen File Server einen CronTab anlegen, der einmal in der Woche (Donnerstag um 05:00) den Inhalt eines Ordners löscht...

Hatte schonmal mit google Hilfe einen Crontab gebaut, der Daten innerhalb eines Ordner nach 15 Tagen immer löscht...

find /data/data -type f -mtime +15 -exec rm {} \;

nur wie leg ich den CronJob Befehl so an das der wie gesagt donnerstags um 5 uhr im ordner die daten löscht... bin in dem shell scripting jetzt nicht ganz so das genie...

'crontab -e' legt afaik nur für den benutzer den cronjob an, mit dem man den befehl ausführt. Wenn es immer gestartet werden soll (egal welcher benutzer sich anmeldet), muss es manuell in der '/etc/crontab' eingetragen werden.

das sit völlig unabhängig davon, ob der user angemeldet ist oder nicht. hier wird in einem bestimmten benutzerkontext ein crontab-eintrag erzeugt - dieser wird grundsätzlich zur angegebenen zeit ausgeführt, unabhängig davon, was der user treibt.

wobei: wenn der user gelöscht wird - geht dann eigentlich auch seine crontab flöten? wahrscheinlich ja - aber ich hab's noch nie ausprobiert.

Das Script sollte natürlich auch die entsprechenden Rechte haben. Also der User, unter dem der Cronjob laufen soll, muss das Script auch ausführen können.

Das Script sollte natürlich auch die entsprechenden Rechte haben. Also der User, unter dem der Cronjob laufen soll, muss das Script auch ausführen können.

Das Script sollte folgende Berechtigung haben. Dann sollte es jeder ausführen können.

rw-rw-rwx 1024 24 Jul <Scriptname>

Aber grundsätzlich ist es richtig, dass es in der crontab des Users stehen sollte, dem auch die zu verarbeitenden Daten gehören. Andernfalls wird zwar das Script ausgeführt aber die Ordner/Dateien können mangels der Berechtigung nicht gelöscht werden.

Das Script sollte folgende Berechtigung haben. Dann sollte es jeder ausführen können.

rw-rw-rwx 1024 24 Jul <Scriptname>

Gehts noch ? Ein Script, das per Cron aufgerufen wird (wohlmöglich noch von root) und WORLD-WRITEABLE ist ?! :upps

klassischer Anfängerfehler :D

Gerade wenn es um Webserver und Skripte geht ist das kein Anfängerfehler, sondern das was du meistens als erstes in einer Antwort bei Problemen findest. "777 ist doch kein Fehler, weil dann kann ja auf jeden Fall der User zugreifen!?"

Gerade wenn es um Webserver und Skripte geht ist das kein Anfängerfehler, sondern das was du meistens als erstes in einer Antwort bei Problemen findest. "777 ist doch kein Fehler, weil dann kann ja auf jeden Fall der User zugreifen!?"

Für einen Zugriff reichen aber Leserechte (und Ausführungsrechte) völlig aus.

Wenn ein Cronscript mit root Rechten ausgeführt wird und auch noch für jeden schreibar ist kann praktisch jeder User beliebig viele Befehle mit Root rechten ausführen....

Für einen Zugriff reichen aber Leserechte (und Ausführungsrechte) völlig aus.

Das ist das was man überall im Internet findet. Weil es halt einfacher ist chmod 777 einzugeben, als sich Gedanken über User und Zugriffsrechte etc. zu machen. :rolleyes:

Ich sage nicht dass das richtig ist, ist aber so (siehe z.B. oben).

  • 2 Wochen später...

Hätte da mal ne allgemeine Frage:

Gehen wir mal von diesem hypothetischen Fall aus ein Skript wurde als root-User angelegt und es kommen in diesem Skript Befehle vor, die nur als root-User durchgeführt werden können. Jetzt kommt der User hans, der in einer non-root-Gruppe ist und führt das Skript mit mod a+x aus.

Mit welchen Berechtigungen wird das Skript gestartet?

Ivanhoe,

es ist zwar recht einfach, alles in die '/etc/contab' einzutragen aber das sollte man vermeiden. Die '/etc/crontab' wird bei jedem Systemupdate überschrieben, was bei 'crontab -e' nicht der Fall ist.

Grüße,

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.