Блог Ходакова

#golang #macos #linux #overwatch и стопицот других тегов
Авто-очистка медиа-кэша в Mastodon

Опять я со своими однострочниками. На этот раз — автоматическая очистка медиа-кэша инстанса соцсети Mastodon.

Mastodon (это такая соцсеть федеративная, подписывайтесь) любит захламлять пространство на диске. И ладно бы это были просто рандомные медиа-файлы — если у вас в федеративной ленте пляшут пони и футанари, вся эта балубень сохраняется на жёсткий диск вашего сервера. И помимо чисто эстетических проблем (футанари нравится не всем, прикинь?), могут возникнуть проблемы юридического характера (привлекут за хранение, и доказывай потом, что не верблюд).

Если вы вдруг не знаете, что такое «футанари», ради Бога, не гуглите. Я предупредил.

/bin/bash -c 'export PATH="$HOME/.rbenv/bin:$PATH" && eval "$(rbenv init -)" && cd /path/to/mastodon/ && RAILS_ENV=production bin/tootctl media remove --days=1 --verbose >> log/cron.log 2>&1'

Команду выше подготовлена для запихивания в crontab. Что она делает:

  • Инициализирует rbenv (дефолтный метод установки Ruby для мастодон-инстанса, настроенного по официальному гайду)
  • Переходит в директорию с инстансом (/path/to/mastodon/ надо заменить на настоящий путь)
  • Запускает чистилку с параметрами --days=1 (очищать всё, что старше дня) и verbose (показывать в логах ID удалённых медиафайлов)

Параметр days можно настраивать в широких пределах, и, собственно, запускать команду раз в N дней, отталкиваясь от неё.

← Юнит-файл systemd для запуска MTProto-прокси