Ant Wort schrieb:
> Na gut, dass das nicht maximal kompliziert ist...
>
> Das Löschen der Dateien bis auf die Letzten X würde ich so machen:
> ls -1 ./volume1/Backups/MariaDBDump-*.gz | head -n -20 | xargs echo "rm
> -f "
> (Ggf muss es ls -t1 heißen)
So ähnlich würde ich auch so machen. (Bei -1 müsste es alphanumerisch
sortiert sein, sollte bei einem ISO Datum im Namen gehen. Ich würde also
eher auf -1t setzen.)
Zu den den find Varianten ist noch zu beachten, dass die Rekursiv sind.
Auf die Reihenfolge würde ich mich dort auch nicht verlassen. Und vieles
von diesen "wc -l" Geschichten usw. könnte man sich sparen, wenn man
einfach bash Arrays nehmen würde.
Wie wäre es mit noch einer Variante?
1 | #!/bin/bash
|
2 |
|
3 | keep=270
|
4 | backups=( /volume1/Backups/MariaDBDump-*.gz )
|
5 |
|
6 | if [ ${#backups[@]} -gt $keep ]
|
7 | then rm "${backups[@]:0:${#backups[@]}-$keep-1}"
|
8 | fi
|
Edit: hatte einen off-by-one fehler drinn...