@Sevastoporn

Как в Linux заархивировать огромное количество папок по месяцам?

Есть более 500 000 директорий, которые нужно заархивировать каждый месяц в отдельный архив.
Название директорий никак не связана с датой, поэтому отсортировать файлы можно только по дате создания.
Как я понял, fing'ом такое вряд ли отсортируешь.
Какой механизм сортировки лучше использовать, чтобы потом передавать вывод на архивирование?
  • Вопрос задан
  • 1293 просмотра
Пригласить эксперта
Ответы на вопрос 4
@pfg21
ex-турист
если тебе инкрементальный/дополняющий бекап то бери бекапер.

find тебе может выдать список файлов не старее одного месяца. его и скармливаешь архиватору. получаешь пакет новых/измененных файлов за прошедщий месяц.
или тебе что другое надо ??
Ответ написан
@Germanjon
Почему это find-ом не отсортируешь? Просто, в два этапа пробежаться: записать все файлы (точнее пути к ним и имя) в отдельный txt-шник или SQL. На втором этапе загнать все нужные файлы в архив.

А вообще, согласен с сергей кузьмин , лучше расписать задачу поподробнее
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
В задании есть какое-то противоречие. Внутри одной папки могут лежать файлы по разным месяцам. Что делать в таком случае - непонятно. Вобщем автору надо детализировать задание чтоб отвечающие могли понять что на самом деле надо. Что должно быть на выходе.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Пробежись по папкам, беря их дату изменения и на базе этой даты кидай папку в архив

что-то типа
find /home -maxdepth 1 -mindepth 1 -type d -exec myscript.sh  {} \;


myscript.sh:
zip -m $(stat -c %y $1|cut -d " " -f 1) $1

p.s. на запуск не проверял, потестируй перед тем как запускать на продакшн
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы