Skrypt do usuwania folderów starszych niż n dni


(seba456) #1

Witam

napisałem sobie skrypt do robienia dziennych kopii zapasowych plików (o nazwie folderu kopia z nia dnia ...... ) jednakże z czasem kopie zaczęły zajmować za dużo miejsca i potrzebuje skryptu który będzie mi usuwał stare kopie tzn foldery starsze niż 3 dni. Napisałem sobie prosty skrypt do usuwania ale nie wiem czemu ale nie działa im on.

kod skryptu do backupu

#!/bin/sh

echo "Rozpoczynam backup plików i folderów z Biuro"

d="/mnt/Backup/Biuro/kopia z dnia `date +%Y.%m.%d`"

mkdir -p "$d"

rsync -avz /mnt/Dane/Biuro "$d" >> "$d/log"


sleep 5s


echo "Rozpoczynam backup plików i folderów z Publiczne"

d="/mnt/Backup/Publiczne/kopia z dnia `date +%Y.%m.%d`"

mkdir -p "$d"

rsync -avz /mnt/Dane/Publiczne "$d" >> "$d/log"


sleep 5s


echo "Rozpoczynam backup plików i folderów z VM"

d="/mnt/Backup/VM/kopia z dnia `date +%Y.%m.%d`"

mkdir -p "$d"

rsync -avz /mnt/Dane/VM "$d" >> "$d/log"


exit

kod skryptu do usuwania (tymczasowo tylko dla 1 folderu)

for i in `find /mnt/Backup/Publiczne -maxdepth 1 -type d -mtime +7 -print`

do echo -e "Usuwanie $i"

rm -rf $i

done

po odpaleniu wyżej podanego skryptu pokazuje mi się:

usuwanie kopia

usuwania z

usuwanie dnia

itp


(roobal) #2

Spróbuj tak.

find /mnt/Backup/Publiczne -maxdepth 1 -type d -mtime +7 -exec rm -rfv {} \;

lub

find /mnt/Backup/Publiczne -maxdepth 1 -type d -mtime +7 | xargs -0 rm -rfv