Portál AbcLinuxu, 10. května 2025 01:49

Dotaz: Bash skript - promazani starych souboru

14.11.2008 15:24 toxin | skóre: 6
Bash skript - promazani starych souboru
Přečteno: 2099×
Odpovědět | Admin
Ahoj. Mám linuxový stroj, na kterém běží Postfix. Jednotilivé maily jsou ukladany do /var/spool/virtual/jmeno_uzivatele/Maildir/cur/ . Na serveru lezi zpravy stare nekolik let (nektere maji 8 let). Chtel bych rekurzivne projit adresare s jednotlivymi uzivateli a podle data vytvoreni souboru (mailu) v adresari cur soubory mazat. Tzn. napr. smaz vsechny soubory v adresari cur u vsech uzivatelu starsi nez 1.1.2006. Ja bych to udelal i rucne, ale server ma pres 400 uzivatelu :-/. Skriptovat bohuzel neumim nebo jen uplne zaklady. Mohl by mi nekdo nastinit reseni? Dekuji Vam :).
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.11.2008 15:55 diverman | skóre: 32 | blog: život s tučňáčkem
Rozbalit Rozbalit vše Re: Bash skript - promazani starych souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
find $dir -ctime $ctime -exec rm {} \;
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
14.11.2008 22:43 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
Rozbalit Rozbalit vše Re: Bash skript - promazani starych souboru
pokial ide o gnu find tak doporucujem pouzit -delete namiesto -exec rm {} \; a samozrejme tie dve premene treba niecim zmysluplnym nahradit :o)
15.11.2008 11:24 jan
Rozbalit Rozbalit vše Re: Bash skript - promazani starych souboru
>> pokial ide o gnu find tak doporucujem pouzit -delete namiesto -exec rm {} \;

duvod?
David Watzke avatar 15.11.2008 11:38 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Bash skript - promazani starych souboru
Není to zřejmý? Nebude se dokola volat extra binárka, ale o smazání se postará rovnou find. Ale hlavně to -delete prosim vás až za všechny matchovací podmínky, pokud si nechcete smazat všechno v danym adresáři...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
15.11.2008 12:59 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
Rozbalit Rozbalit vše Re: Bash skript - promazani starych souboru
Dvovody su na to dva:
1. Volanie -exec vytvori novy process a v nom zavola rm. Cize na kazdy subor, ktory sa ma vymazat sa zavola cely cyklus fork, exec, unlink, exit. Neni to vobec efektivne kedze vsetko az na ten unlink dost zatazuje system.
2. Bezpecnost. Medzi urcenim, ktore subory vymazat a samotnym vykonanim prikazu rm je celkom 'dlhy' cas, pocas ktoreho moze utocnik podhodit nieco ine na vymazanie. V pripade pouzitia -delete sa kontroluje ci sa maze to co bolo urcene na mazanie.
18.11.2008 11:12 toxin | skóre: 6
Rozbalit Rozbalit vše Re: Bash skript - promazani starych souboru
Zkousel jsem to. Pokud to dobre chapu (coz netvrdim :) ) tak ten prikaz co jsi napsla udela to, ze vyhleda soubory a adresare v adresari $dir, ktere jsou stare n dni zpet. Ale ja potrebuji aby nehledal nove soubory, ale naopak stare. Vite jak na to?
wolf09 avatar 18.11.2008 14:51 wolf09 | skóre: 30
Rozbalit Rozbalit vše Re: Bash skript - promazani starych souboru
kdyz date

-ctime +5 , tak najde soubory vytvorene pred vice nez 5 dny

-ctime 5 prave pred 5 dny

a

-ctime -5 soubory vytvorene maximalne pred 5 dny

Zkusili jste to vypnout a znovu zapnout ?
19.11.2008 16:14 toxin | skóre: 6
Rozbalit Rozbalit vše Re: Bash skript - promazani starych souboru
Děkuji Vám moc. Já vím. Stačilo by číst manuálové stránky :). Už to funguje :).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.