Практическое задание

Эта задача — шаг 11 курса «Архивы и бэкапы»

Упакуй устаревшие выгрузки

средне~7 мин

Каталог /srv/exports пухнет от ежедневных CSV-выгрузок. Упакуй все .csv-файлы старше 30 дней в архив /root/exports-old.tar.gz и удали их оригиналы. Более свежие выгрузки и файлы других типов оставь на месте.

Что потренируешь:
  • find
  • -mtime
  • tar
  • gzip
  • архивация по возрасту

Разбор темы

Архивация «всего, что старше N дней» — два шага с одним и тем же отбором. Сначала find находит файлы по маске имени и возрасту: предикат -mtime +30 значит «изменён строго больше 30 суток назад», а файл ровно на границе в выборку не попадёт. Список найденного передают tar (он читает имена из файла или со stdin), и тот сразу сжимает архив gzip'ом. Только убедившись, что архив создан, оригиналы удаляют тем же find с действием -delete — одинаковый фильтр гарантирует, что исчезнет ровно то, что упаковано, а свежие файлы и файлы других типов останутся.

Что проверяется

  1. старые выгрузки упакованы в exports-old.tar.gz
  2. оригиналы старых выгрузок удалены
  3. свежие выгрузки и README остались и не попали в архив

Как это выглядит