>_ IzzyLab

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

Бэкап-скрипт с датой в имени

средне

Напиши /usr/local/bin/backup-home, который упаковывает /root в архив /backups/root-ГГГГ-ММ-ДД.tar.gz (дата — сегодняшняя). Каталог /backups создай, если его нет. Запусти скрипт.

Что потренируешь:
  • date
  • подстановка команд
  • $( )
  • tar
  • mkdir -p

Разбор темы

Идея — собрать имя архива с сегодняшней датой в момент запуска, а не хардкодить его. Дату в нужном формате печатает date (загляни в man date за директивами формата), а чтобы вставить её вывод прямо в строку пути, используется подстановка команд $( ): bash сначала выполнит команду, затем подставит результат. Дальше дело за идемпотентным созданием каталога (mkdir с флагом -p, не ругающимся на существующий) и упаковкой каталога утилитой tar с флагами создания, gzip-сжатия и имени файла.

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

  1. backup-home исполняемый
  2. архив с сегодняшней датой создан
  3. архив — корректный tar.gz

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