Linux Labs

Bash: обработка текста и скрипты / Итоговая лаба

Очистка выгрузок по расписанию

сложная ~40 мин
Не запущена Запускается обычно ~20 с
Сообщить о проблеме

Ситуация

Сервис отчётов складывает выгрузки клиентов в /srv/exports — по каталогу на клиента, файлы *.csv. Выгрузку хранят 14 дней. Для этого прежний администратор написал скрипт /usr/local/bin/clean-exports и запускает его из cron каждую ночь в 03:30.

Жалобы за месяц:

  • клиент acme не может скачать вчерашний отчёт — его уже нет;
  • у клиента blue river лежат выгрузки, которым больше двух месяцев;
  • ночное резервное копирование выгрузок (служба backup-exports, с 03:00) пишет tar: exports/…: File removed before we read it;
  • когда очистка запускалась и что удалила, не знает никто.

Руководитель просит перевести очистку на таймер systemd: там каждый запуск виден в systemctl и в журнале.

Задача

Почини очистку и переведи её с cron на таймер systemd:

  1. Таймер clean-exports.timer включён и запущен, расписание — на твой выбор; cron очистку больше не запускает.
  2. Служба clean-exports.service, запущенная вручную, завершается успешно.
  3. Запуск удаляет из /srv/exports выгрузки *.csv старше 14 дней — в любом подкаталоге и с любым именем.
  4. Выгрузки моложе 14 дней и файлы вне /srv/exports остаются на месте.
  5. Каждый запуск пишет в журнал службы, сколько выгрузок удалил.
  6. Очистка не работает внахлёст: пока блокировку резервного копирования держит другой процесс — само копирование или второй запуск очистки, — она ничего не удаляет.

Проверка запускает службу сама на своих выгрузках в /srv/exports, читает журнал этого запуска и пробует запуск, пока блокировка занята. Свои файлы она убирает.

Интернета на машине нет, всё нужное уже установлено.

Видна только тебе. Сохраняется при вводе.

Все заметки

Цели лабы

0 из 6
  • Таймер clean-exports.timer включён и запущен, cron очистку не запускает — ещё не проверялась
  • Ручной запуск clean-exports.service завершается успешно — ещё не проверялась
  • Запуск удаляет выгрузки *.csv старше 14 дней в любом подкаталоге /srv/exports — ещё не проверялась
  • Выгрузки моложе 14 дней и файлы вне /srv/exports остаются на месте — ещё не проверялась
  • Запуск пишет в журнал службы, сколько выгрузок удалил — ещё не проверялась
  • Пока блокировку резервного копирования держит другой процесс, очистка ничего не удаляет — ещё не проверялась

Подсказки

открыто 0 из 3 · открываются по одной
Подсказка 1
Показать решение после 3 неудачных проверок

Выйти из лабы?

Машина проработает ещё 10 минут и удалится. Файлы пропадут, выполненные цели останутся.

Загрузка…