niedziela, 12 maja 2013

Usuwanie plikow starszych niż ....


Czasami zachodzi potrzeba kasowania plików których "świeżość" ;) przekroczyła pewną ilość dni.


np.
choćby stare backupy ,  lub stare zdjęcia,  cokolwiek

oto kilka prostych porad jak się do tego zabrać:


1)
możemy wykorzystać do tego startego poczciwego find'a



find .  -ctime +30 -delete

lub jeśli szukamy tylko np. archiwum tar.gz

find . -name '*.tar.gz' -ctime +30 -delete

(kasowanie nastąpi w bieżącym katalogu dla plików starszych i równych 30 dni)

jeśli chcemy w innym katalogu to zamiast . po find wpisujemy zadany katalog

np.

find /tmp -name '*.tar.gz' -ctime +30 -delete 

(skasujemy wszystkie swoje pliki tar.tgz z katalogu /tmp , starsze niż 30 dni)


2)
możemy też wykorzystać skrypt w bash'u

vi kasuj_30dni.sh
 
(stwórz plik  z zawartością (poniżej))


#!/bin/sh

DZIS=`date +%s`
DOBA=86400

ls $1 | while read file
do
 STATE=`stat --format=%Y ${file}`
 PARAMETR=$(((DZIS-STATE)/DOBA))
 if [ $PARAMETR -gt 30 ]
 then
        echo "Kasuje plik ${file} ktory jest starszy niz 30 dni"
        rm -f -v ${file}
 fi
done
 
dodajmy uprawnienia dla pliku:
chmod u+x  kasuj_30dni.sh
 
i bęc uruchamiamy (tylko ostrożnie bo skasuje nam wszystko powyżej 30 dni w bieżącym katalogu)
  
./kasuj_30dni.sh
 
 
Andrzej Tarnowiecki
Usługi Informatyczne - tarnet.eu.org 

Brak komentarzy:

Prześlij komentarz