Mastodon

adguardhome日志导致磁盘爆满解决过程

adguardhome日志导致磁盘爆满解决过程

前几天看beszel监控我的clawcloud服务器就在想,什么时候我的服务器磁盘使用率达到了70%,我的服务器磁盘是350GB的,我最近一周也没怎么折腾这台机器

就在刚刚我发现我的clawcloud服务器磁盘使用率达到了100%(是接近100%)

我连忙ssh连上机器查看到底是什么消耗了如此多的磁盘空间

查看文件系统空间使用率

df -h

发现/dev/vda1 355G 351G 0 100%达到了惊人的100%

继续往/dev/vda1搜索,计算根目录下一级目录的空间

sudo du -xh --max-depth=1 / | sort -h

可以看到家目录/home占用了273GB,/var也占用了68GB,我的家目录全是docker项目

查看/home 和 /var 下两级目录磁盘占用

sudo du -xh --max-depth=2 /home | sort -h
sudo du -xh --max-depth=2 /var | sort -h

最显眼的是adguardhome,那么问题就在adguardhome docker这里了

继续查找/home/jay/adguardhome下占用最大的目录

sudo du -xh /home/jay/adguardhome | sort -h | tail -20

为/work/data目录,查询data下有什么文件,列出大小(此处需要root)

ls -la

最大的是querylog.json

直接删除即可

docker compose -f /home/jay/adguardhome/docker-compose.yml down
rm querylog.json
docker compose -f /home/jay/adguardhome/docker-compose.yml up -d

为了防止querylog.json继续无限制膨胀,需要把adguardhome的日志保存期限设置短一些

然后我突然忘记了密码,我选择重新设置密码:https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration#password-reset

sudo apt-get install apache2
htpasswd -B -C 10 -n -b username password

会得到一串数据,前面是username,后面是密码的hash值

username:$2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

找到Adguardhome.yaml,在./conf/AdGuardHome.yaml

sudo find .

替换掉user和password

users:
  - name: username
    password: password-hash

重启容器:

docker compose -f /home/jay/adguardhome/docker-compose.yml down && docker compose -f /home/jay/adguardhome/docker-compose.yml up -d

来到xxx.xxx/#settings的日志配置,将查询日志保留时间从90天改为24小时