Izbris vseh, razen zadnjih dveh datotek
Torej, na target sistem delam dnevne backupe v obliki:
Rad bi pobrisal vse stare datoteke, razen zadnjih dveh. Načeloma to storim takole:
No, problem je pa naslednji. Lahko se zgodi, da kakšen dan backup ne uspe. V tem primeru ne bi želel pobrisati zadnjih dveh datotek, pač pa bi želel, da zadnji dve vseeno ostaneta.
Še malo bolj komplicirana možnost je, da backup uspe samo delno. To bom vedel, če bo velikost backup datoteke premajhna (gre za kopijo disk imagea, ki mora biti velika točno 300 GB). V tem primeru bi rad pobrisal VSE stare datoteke, razen zadnjih dveh velikih 300 GB.
Any idea?
backup-2016-09-01.img
backup-2016-09-02.img
backup-2016-09-03.img
...
Rad bi pobrisal vse stare datoteke, razen zadnjih dveh. Načeloma to storim takole:
ls -F | head -n 3 | xargs rm
No, problem je pa naslednji. Lahko se zgodi, da kakšen dan backup ne uspe. V tem primeru ne bi želel pobrisati zadnjih dveh datotek, pač pa bi želel, da zadnji dve vseeno ostaneta.
Še malo bolj komplicirana možnost je, da backup uspe samo delno. To bom vedel, če bo velikost backup datoteke premajhna (gre za kopijo disk imagea, ki mora biti velika točno 300 GB). V tem primeru bi rad pobrisal VSE stare datoteke, razen zadnjih dveh velikih 300 GB.
Any idea?
Komentarji
Ti bo povedal število datotek, kar lahko shraniš v spremenljivko in potem veš koliko datotek pobrisati.
Ti bo pa izpisal velikost v človeško berljivih enotah, kar lahko primerjaš s tvojo velikostjo. Zadnji dve veliki 300 GB shraniš v izjeme, ostalo brišeš.
Torej, datoteke z ls izpišeš razvrščene po času (parameter -t) in če je njihovo število dva ali manj, nehaš. V nasprotnem primeru pa greš skozi seznam:
in prvi dve ujemanji veliki 300 GB shraniš v izjemo, vse ostale pa pobrišeš.
Upam, da sem prav razumel problem.