Страница 1 из 1
Сортировка
Добавлено: 2008-11-17 16:32:37
icb
Есть скрипт создающий бекапы. Хотелось бы прикрутить автоудаление (т.е. чтобы всегда было в наличии например 5 последних бекапов).
Как отсортировать полученные по ls каталоги (чтобы потом получить имя самого древнего для удаления)?
Re: Сортровка
Добавлено: 2008-11-17 16:42:25
Yam
Если имя каталога задаётся шаблоном и включает в себя дату, то просто ls | sort
Re: Сортровка
Добавлено: 2008-11-17 17:14:53
zg
Примерно так
Код: Выделить всё
#!/bin/sh
cd /usr/local/mysql/data
d=`/bin/date "+%Y-%m-%d"`
/usr/bin/tar -cjf /usr/local/db_backup/db.$d.tar.bz2 mydb
for i in `/bin/ls -1 /usr/local/db_backup/db.** | /usr/bin/sort -r | /usr/bin/awk '{if (++i>4)print $0}'`
do
echo $i
rm $i
done
Re: Сортировка
Добавлено: 2008-11-17 18:06:43
dikens3
http://www.lissyara.su/?id=1791
Код: Выделить всё
# delete files oldest 30 days
0 22 * * * find /shares/trash -type f -mtime +30 -exec rm {} \;
# delete empty dirs
30 23 * * * find /shares/trash -type d -mtime +30 -exec rmdir {} \; >/dev/null 2>&1
Вот пример удаления файлов и директорий старше 30 дней. Остальное думаю осилите сами.
Re: Сортировка
Добавлено: 2008-11-17 18:19:42
zg
dikens3 писал(а):старше 30 дней. Остальное думаю осилите сами.
если у тебя будут тридцать бекапов за один день, а после этого скрипт архивации полетит, сколько бекапов будет храниться в течении месяца и сколько после?