You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已通过VM Cron实现Mastodon自动缓存删除,求容器内实现方案

Mastodon容器内实现缓存自动删除的方法

方法1:容器内部配置Cron任务

适用于希望将定时任务完全封装在容器内的场景:

  • 进入Mastodon应用容器(替换为你的实际容器名,比如mastodon-web):
    docker exec -it mastodon-web /bin/bash
  • 安装cron(基于Debian/Ubuntu镜像的容器执行以下命令):
    apt update && apt install -y cron
  • 创建缓存清理脚本,比如/opt/mastodon/clean_cache.sh:
    #!/bin/bash
    # 清理public/assets下超过7天的缓存文件,可按需调整路径和过期时间
    find /opt/mastodon/public/assets -type f -mtime +7 -delete
    # 若需清理Redis缓存,添加以下命令(替换Redis地址,同网络下可直接用服务名)
    # redis-cli -h redis FLUSHDB
    
  • 给脚本添加执行权限:
    chmod +x /opt/mastodon/clean_cache.sh
  • 编辑crontab配置定时任务:
    crontab -e
    添加规则(示例为每天凌晨2点执行):
    0 2 * * * /opt/mastodon/clean_cache.sh >> /var/log/mastodon_cache_clean.log 2>&1
  • 启动cron服务并设置开机自启:
    service cron start && update-rc.d cron enable

方法2:宿主机Cron调用容器内命令

无需修改容器内部,适合轻量化场景:

  • 在宿主机执行crontab -e,添加定时任务,直接通过docker exec调用容器内的清理命令:
    0 2 * * * docker exec mastodon-web find /opt/mastodon/public/assets -type f -mtime +7 -delete >> /var/log/mastodon_cache_clean.log 2>&1
  • 同样可按需调整清理路径、过期时间,或添加Redis缓存清理命令。

注意事项

  • 根据你的Mastodon部署结构,调整缓存文件的实际存储路径(比如public/packs也可能有缓存文件)
  • 清理Redis缓存前请确认业务影响,避免误删关键数据
  • 定期清理任务日志文件,防止占用过多磁盘空间

内容的提问来源于stack exchange,提问作者Dmitry Merkulov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 07:35:05