Portál AbcLinuxu, 12. května 2025 07:58
/DATA
, kam se generuji denne data. A ja bych potreboval skriptik, ktery mi tar
em zabali (do /DATA_back
) A SMAZE (jen po uspesnem zabaleni) data starsi 2 dnu (ty aktualni 2 dny ponecha). Je to hodne slozite? Ve skriptikach jsem jeste amater/DATA
su len subory alebo aj hlbsie adresarove struktury ?
Ahoj, tak tohle je vcelku jednoduchý skript... ono pokud alespoň trochu umíš skriptovat, tak by tě mohl trochu pomoct následující příkaz:
find /DATA/ -name "*" -type f -mtime +2 | xargs tar -cf /tmp/archive.tar
Ten dělá jednoduchou věc a to, že zabalí všechny soubory (vyjma složek) ze složky /DATA starší 2 dní. Pak už stačí jenom zkontrolovat jestli archiv existuje a třeba jestli je větší než nějaká velikost. Pokud budeš potřebovat dovysvětlit i ten zbytek, tak si řekni :)
Jarda
find /DATA/ -name "*" -type f -mtime +2 | xargs rm -f
Napada me... neumi ten zdroj po zabaleni smazat primo tar
?
No vida na to, že to vlastně jde rovnou v taru jsem úplně zapomněl :). Holt hlava děravá, v tom případě bude naprosto stačit tenhle příkaz:
find /DATA/ -name "*" -type f -mtime +2 | xargs tar --remove-files -cf /tmp/archive.tar
find /DATA -type f -mtime +2 -exec tar --remove-files -cf /tmp/archive.tar {} \;
To, že -name je v tomhle případě zbytečné je pravda, ale pokud by to chtěl Marek později rozširovat, tak má lepší když bude mít nějakou referenci.
Jinak podle mě se exec v tomhle případě nedá použít, protože předává názvy souborů postupně jak je nachází, ne jako batch. Takže v tom případě by se musel použít rar s appendem, jinak by nám zbyl v archívu jen poslední nalezený soubor.
find /DATA -type f -mtime +2 -exec tar --remove-files -rvf /tmp/archive.tar {} \;
přičemž soubor /tmp/archive.tar musí už existovat.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.