PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Skript erstellt File, soll nach 1 Monat wieder löschen



Linuxneuling
23.12.2004, 20:28
Hallo!

Ich hätte eine Frage, wie könnte ich ein Skript schreiben, der erstellt eine Datei, und soll sie wieder löschen.
Z. B: rsync -urv > /var/log/rsync$(+date %d%m%y) so wird die Datei erstellt

was mache ich, dass die Datei nach 1 Monat wieder gelöscht wird?

Cyber
23.12.2004, 21:09
script vom cron aufrufen lassen, zeitstempel der datei vergleichen und falls nötig weghauen.

Linuxneuling
23.12.2004, 22:50
cron wird schon den skript der die daten sichert starten, dann sollte der den wenn heute der 23.12 ist die File vom 23.11 weghauen...

wie kann ich das schreiben mv /var/log/backup$(+date %d%m%y) /dev/null

wie schreibe ich Monat -1 oder eine andere Möglichkeit? Bessere Alternative wäre, dass nicht nur die File vom letzen Monat gelöscht wird, auch von 2 oder 3 Monaten, weil der Skript nur von Mo bis Fr ausgeführt wird...

Gronau
24.12.2004, 00:11
Linux kann leider kein erstellungsdatum sondern nur das datum der letzten änderung speichern. Wenn die datei nicht mehr geändert wird könntest du vielleicht mit "find" mit der option -ctime oder -atime probieren.

niLs
24.12.2004, 10:19
löscht du dateien immer, indem du sie nach /dev/null move`st?

löschen => man rm

Schlaubi_fi.de
27.12.2004, 09:46
Hallo,

also erstellen tust du meiner Meinung nach eine Datei ganz grundsätzlich mit:



touch <filename>


oder



vi <filename>


oder



echo "huhu" > <filename>


etc...

und zum löschen in Deinem speziellen Fall guck Dir doch einfach mal die Optionen von find an nämlich -atime, -ctime, -mtime, -daystart, -exec
Das findest du in der Man-Page vom find-Kommando:



man find


Im Prinzip gehst du so vor, dass du nach allen Dateien, in einem bestimmten Verzeichnis suchst, die älter als 1 Monat sind, diese löscht du dann direkt mit dem find und der -exec Option - also -exec rm {} \;

TenBaseT
30.12.2004, 00:09
Der kürzeste Weg eine leere Datei zu erzeugen (oder auch eine bestehende platt zu machen) ist
> DateinameDas mit dem find ist ja gut und schön, aber so richtig glücklich wird man in diesem Fall wohl auch nicht.

Hast du die Datei selbst erzeugt? Dann würde ich einen Dateinamen erwähnen, der ungefär folgendem Muster entspricht: xxxxxxYYYYMM.yyy. Und die zu löschen sollte wohl kein Thema sein.


[hans@rosi tmp]$ a=$(date +"DeineDatei%Y%m")
[hans@rosi tmp]$ echo $a
DeineDatei200412
[hans@rosi tmp]$ Hans