Опять я со своими однострочниками. На этот раз — автоматическая очистка медиа-кэша инстанса соцсети 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 дней, отталкиваясь от неё.