Frage zu conjobs
Hallo Leute,
habe ein Problem. Ich habe einen server auf den ich in einem bestimmten verzeichnis sicherungen weglösche mit cron. Wenn ich jetzt in dieses Verzeichnis schaue dann sehe ich das nix gelöscht wird. Kann mir einer helfen was da los ist?
In crontab -e steht:
habe ein Problem. Ich habe einen server auf den ich in einem bestimmten verzeichnis sicherungen weglösche mit cron. Wenn ich jetzt in dieses Verzeichnis schaue dann sehe ich das nix gelöscht wird. Kann mir einer helfen was da los ist?
In crontab -e steht:
find /home/USER/backup/ -name backupdata\* -type f -mtime +30 -exec rm '{}' \; 2>/dev/null
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 291598
Url: https://administrator.de/forum/frage-zu-conjobs-291598.html
Ausgedruckt am: 15.05.2025 um 02:05 Uhr
8 Kommentare
Neuester Kommentar
Moin,
du hast schon mal rm ohne -r -> damit löscht du zwar dateien aber keine Verzeichnisse...
-type f -> ich meine mich zu errinnern das es meint "Type = File" - wenn du also ein Verzeichnis suchst dann wird der schon nix bringen...
Wenn du das ganze mal manuell ausführst (nur statt rm echo eintragen) - was gibt der dir denn da überhaupt aus?
Btw.: Einen LÖSCHBEFEHL nutzt man nur wenn man sich wirklich sicher ist was dabei rauskommt... Wenn ich dir jetzt sage mach mal nen
-exec rm -rf '/' dann könnte das ggf. der letzte Befehl deines Systems sein... (vermutlich wird er es sein, solltest du also nicht ausprobieren!)
Gruß,
Mike
du hast schon mal rm ohne -r -> damit löscht du zwar dateien aber keine Verzeichnisse...
-type f -> ich meine mich zu errinnern das es meint "Type = File" - wenn du also ein Verzeichnis suchst dann wird der schon nix bringen...
Wenn du das ganze mal manuell ausführst (nur statt rm echo eintragen) - was gibt der dir denn da überhaupt aus?
Btw.: Einen LÖSCHBEFEHL nutzt man nur wenn man sich wirklich sicher ist was dabei rauskommt... Wenn ich dir jetzt sage mach mal nen
-exec rm -rf '/' dann könnte das ggf. der letzte Befehl deines Systems sein... (vermutlich wird er es sein, solltest du also nicht ausprobieren!)
Gruß,
Mike
In crontab -e steht:
find /home/USER/backup/ -name backupdata\* -type f -mtime +30 -exec rm '{}' \; 2>/dev/null
Zum einen fehlen da natürlich die Zeitangaben, wann der das ganze machen soll. Da solllte sowas ähnliches wie
0 * 0 0 0 find /home/USER/backup/ -name backupdata\* -type f -mtime +30 -exec rm '{}' \; 2>/dev/null
stehen (wobei die Wete natürlich deinen bedürfnissen angepasst werden müssten.
Außerden solltest Du mal mit
find /home/USER/backup/ -name backupdata\* -type f -mtime +30 -exec echo rm '{}' \;
lks

Hallo,
Internet oder Google von Leuten gefunden die ein ähnliches Problem haben.
Gruß
Dobby
Frage zu conjobs
Mach doch mal bitte "cronjobs" draus dann wird es auch schnell über dasInternet oder Google von Leuten gefunden die ein ähnliches Problem haben.
Gruß
Dobby

Moin,
Wenn du alle 30 Minuten brauchst schreibst du stattdessen
die crontab bearbeitest du mit crontab -e trägst deinen Befehl ein, speicherst und schließt den Editor. Danach ist dieser sofort aktiv geschaltet und läuft zu den angegebenen Zeiten.
Für einen Test ob dein Befehl auch wirklich läuft brauchst du aber jetzt nicht 30 Minuten warten, sondern du kannst das ganz einfach testen indem du ein Testverzeichnis anlegst und dort eine Datei anlegst die älter als 30 Tage ist
dann trägst du in die crontab des backupusers "USER" via crontan -u USER -e nur für den Test folgendes ein
Die 5 Sternchen bedeuten "jede Minute ausführen".
Überwachen kannst du die Ausführung des CRON-Jobs dann mit
Übrigens der Find-Befehl läuft hier testweise einwandfrei (auch so direkt eingetragen ) in die crontab, obwohl man sinnvollerweise sowas in externe Skripte einträgt.
Gruß grexit
alle 30 minuten im backup verzeichnis nach dateien suchen die "backupdata" enthalten - diese dann löschen und keine fehlerausgabe
Nein das heißt das immer wenn die Minute auf 30 steht, das Script ausgeführt wird. also nicht alle 30 Minuten sondern jede Stunde um "halb".Wenn du alle 30 Minuten brauchst schreibst du stattdessen
*/30 * * * * <befehl>
Für einen Test ob dein Befehl auch wirklich läuft brauchst du aber jetzt nicht 30 Minuten warten, sondern du kannst das ganz einfach testen indem du ein Testverzeichnis anlegst und dort eine Datei anlegst die älter als 30 Tage ist
mkdir /home/USER/backuptest/
touch -d "40 days ago" /home/USER/backuptest/backupdata.txt
* * * * * find /home/USER/backuptest/ -type f -name 'backupdata*' -mtime +30 -exec rm '{}' \;
Überwachen kannst du die Ausführung des CRON-Jobs dann mit
tail -f /var/log/syslog
Gruß grexit