ubuntuusers.de

Skript zum automatischen Löschen von Dateien

Status: Gelöst | Ubuntu-Version: Xubuntu 16.10 (Yakkety Yak)
Antworten |

andi21

Anmeldungsdatum:
24. August 2010

Beiträge: 13

Hallo Zusammen,

ich habe zu meinen kleinen Projekt schon einiges gelesen, aber mir fehlt einfach die Erfahrung mit Skripten und Programmierung. Hoffentlich könnt ihr mir helfen. Es gibt eine Festplatte auf die via Cronjob automatisch Archive gepackt werden. So eine Art Backup. Was ich jetzt noch haben möchte ist folgendes. Wenn die Festplatte zu X Prozent voll ist soll die älteste Datei gelöscht werden.

Mit

1
df -h /dev/sdb1

bekomme ich Informationen zu freien und belegten Speicher der Partition.

Mit

1
ls *.bz2 -tr1|head -1

bekomme ich die älteste Datei.

Mit

1
rm

kann ich die Datei löschen.

Und da kommt schon mein erstes Problem. Wie bekomme ich die beiden Befehle zusammen?

1
rm|ls *.bz2 -tr1|head -1

oder

1
ls *.bz2 -tr1|head -1|rm

läuft nicht.

Und dann müsste ich ja noch was mit einer IF-Bedingung basteln also:

1
2
if[df -h /dev/sdb1 -lt XGB];
then rm|ls *.bz2 -tr1|head -1

Natürlich funktioniert das nicht weil ich so ein Laie bin. Könnt ihr mir helfen?

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5584

andi21 schrieb:

Und da kommt schon mein erstes Problem. Wie bekomme ich die beiden Befehle zusammen?

1
rm|ls *.bz2 -tr1|head -1

oder

1
ls *.bz2 -tr1|head -1|rm

läuft nicht.

1
ls *.bz2 -tr1 | head -1 | xargs rm

Und dann müsste ich ja noch was mit einer IF-Bedingung basteln also:

1
2
if[df -h /dev/sdb1 -lt XGB];
then rm|ls *.bz2 -tr1|head -1

Mit df --output=avail . | tail -n 1 bekommst du nur eine Zahl zurueck, mit der du vergleichen kannst. (Siehe Manpage von df...)

Held-der-Arbeit

Anmeldungsdatum:
9. Januar 2006

Beiträge: 332

Antworten |