Alexzzz91
@Alexzzz91
кое что могу

Как сделать цикл на переименование файлов в bash?

В общем дело такое, пишу скрипт на создание бекапа, фишка в том что он должен иметь название папки которую должен забекапить и назвать именем папки файл в стиле $dir-backup.tar.gz и нужно передавать ему что максимальное количество хранимых бекапов, сейчас он у меня проверяет количество, если оно больше то удаляет самый старший файл и создает новый с именем 0 на конце, как сделать так чтобы 0 архив стал 1, 1>2 , 2>3 и тд?
  • Вопрос задан
  • 920 просмотров
Пригласить эксперта
Ответы на вопрос 4
@azazelpw
Linux SA
А не проще создавать архив с датой? и указать время хранения?
Вы пакуете архив и он имеет вид $date-$dir-backup.tar.gz
Или создаете директорию с датой и уже туда кладете архивы.

Структура то скрипта простая
#!/bin/bash
Объявляем переменные.
И
for
do
done
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
А просто вот так делать не рекомендуется
Придется постоянно дергать старые папки, переименовывать их (что меняет дату изменения).
Удобнее название папки делать не просто цифрой, а датой. Тогда очень легко удалять старые папки, отсчитав от текущей даты xx дней. Вдобавок визуально гораздо проще работать с такими бэкапами.
Ответ написан
Для подобной задачи я писал:
find /media/ftp_backup -name '*dmp.gz' | sed 's/20[0-9][0-9]_[0-1][0-9]_[0-3][0-9]/20\*_\*_\*/g' | sort | uniq | xargs -I{} echo 'ls -1t {} | tail -n +3 |sed s:.*/::g '|sh | xargs -I{} find /media/ftp_backup -name {} -delete

Файлы находятся в поддиректориях и называются:
XXX_2015_08_28_YYY_ZZZ.dmp.gz
Сохраняются по 3 новых файла для каждого XXX .
Ответ написан
Комментировать
xenozauros
@xenozauros
Админю, пишу на питоне, вот это вот все...
Мне кажется, проще всего лдогротейт прикрутить для такой задачи )) А бекапить через pre-rotate скрипт какой.
Но вообще - как и написали - так неправильно. Создавайте архив с датой. И по дате потом старые и прибивайте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы