В общем дело такое, пишу скрипт на создание бекапа, фишка в том что он должен иметь название папки которую должен забекапить и назвать именем папки файл в стиле $dir-backup.tar.gz и нужно передавать ему что максимальное количество хранимых бекапов, сейчас он у меня проверяет количество, если оно больше то удаляет самый старший файл и создает новый с именем 0 на конце, как сделать так чтобы 0 архив стал 1, 1>2 , 2>3 и тд?
А не проще создавать архив с датой? и указать время хранения?
Вы пакуете архив и он имеет вид $date-$dir-backup.tar.gz
Или создаете директорию с датой и уже туда кладете архивы.
Структура то скрипта простая
#!/bin/bash
Объявляем переменные.
И
for
do
done
А просто вот так делать не рекомендуется
Придется постоянно дергать старые папки, переименовывать их (что меняет дату изменения).
Удобнее название папки делать не просто цифрой, а датой. Тогда очень легко удалять старые папки, отсчитав от текущей даты xx дней. Вдобавок визуально гораздо проще работать с такими бэкапами.
Я не понимаю, какого хрена НАЧАЛЬСТВО лезет в работу системного инженера.
Кто восстанавливать будет? Задача стоит держать 10 последних архивов - так вот главная цель, а делать глючный велосипед - это маразм.
Можно конечно наваять счетчик, и просто циклом бегать по всем файлам, вычисляя какой из них последний. Но это гемор, и грешит тем, что будет нестабильно работать.
Мне кажется, проще всего лдогротейт прикрутить для такой задачи )) А бекапить через pre-rotate скрипт какой.
Но вообще - как и написали - так неправильно. Создавайте архив с датой. И по дате потом старые и прибивайте.