Vraag & Antwoord

OS Linux

Bestanden voor een bepaalde datum verwijderen

5 antwoorden
  • Ik gebruik SARG om rapporten uit te draaien voor mijn squid proxyserver. Alleen is elke dag een apart rapport dus neemt dit na verloop van tijd heel veel schijfruimte in beslag, dit terwijl ik aan zeven dagrapporten voldoende zou hebben. Nu wil ik een script maken wat alle rapporten die ouder zijn dan de huidige datum - 6 dagen verwijderen. Met [b:624cf8de96]date --date "6 day ago" +%d/%m/%Y[/b:624cf8de96] kan ik de datum specificeren waarvoor de data verwijderd moet worden. Alleen hoe kan ik dat filteren in een [b:624cf8de96]rm[/b:624cf8de96] opdracht?
  • combinatie van find en rm gebruiken (hint: man find ;) ) Kijk naar de opties -delete en -exec van find. Met wat pipes etc. kun je daarmee een commando in elkaar flansen :) succ6
  • Hmm...over het find commando had ik dus helemaal heen gekeken. Bedankt voor de hints, mocht het toch niet lukken dan meld ik mij wel. :wink:
  • find /pad/naar/rapporten -type f -mtime +6 -exec rm "{}" \; gooit alles onder /pad/naar/rapporten/ ouder dan 6 dagen weg. Roept rm aan voor elke file, wat niet optimaal is als het heel veel bestanden zijn. optimaal (en ook safe voor rare bestandsnamen) is: find /pad/naar/rapporten -type f -mtime +6 -print0 | xargs -0 -r rm (let op beide keren cijfer 0 niet letter O).
  • Ik heb nu de onderste (safe) opdracht gebruikt. Dit werkt goed en de bestanden in de subdirs worden ook netjes verwijderd. Ik krijg alleen met geen mogelijkheid de directories zelf ook weg. Ik heb [b:32e183d6e8]| xargs -0 -r rm [/b:32e183d6e8] veranderd in [b:32e183d6e8]| xargs -0 -r rm -fr[/b:32e183d6e8] maar de subdirs blijven bestaan. Weet iemand de oplossing?

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.