Хотите улучшить мой простой скрипт резервного копирования сайта / базы данных с автоматическим удалением старых резервных копий - PullRequest
0 голосов
/ 21 марта 2010

У меня есть следующий простой скрипт для резервного копирования файлов моего сайта и базы данных.Сценарий запускается каждый день с помощью задания cron.

#!/bin/sh

NOW=$(date +"%Y-%m-%d")

mysqldump --opt -h localhost -u username -p'password' dbname > /path/to/folder/backup/db-backup-$NOW.sql

gzip -f /path/to/folder/backup/db-backup-$NOW.sql

tar czf /path/to/folder/backup/web-backup-$NOW.tgz /path/to/folder/web/content/

Он отлично работает, но я не хочу, чтобы множество старых резервных копий забивали мою систему.Как я могу изменить скрипт, чтобы удалить все резервные копии старше недели при запуске скрипта?

Ответы [ 2 ]

0 голосов
/ 21 марта 2010

с GNU find, вы можете использовать -delete

find /path -type f -iname "*backup*gz" -mtime +7 -delete

или вы можете использовать +; вместо xargs.

find /path -type f -iname "*backup*gz" -mtime +7 -exec rm -f "{}" +;
0 голосов
/ 21 марта 2010

Как насчет добавления чего-то вроде этого:

find -ctime +7 -print0 | xargs -0 rm -v

find -ctime +7 -print0 находит все файлы, которые были изменены (c) более 7 дней назад (+7), и отправляет их как \0разделенная строка (-print0), которую xargs -0 отправляет rm -v в качестве аргументов.

...