Проблема знакомая: диск внезапно кончается, а кто именно его съел - непонятно. Решение простое: снимать размеры каталогов и сравнивать во времени.
1️⃣ Делаем снимок. Сохраняем размеры верхнеуровневых директорий:
du -x --max-depth=1 /var 2>/dev/null | sort -n > /tmp/var.size.today
-x - не уходим на другие FS--max-depth=1 - только первый уровеньсортировка сразу по размеру
2️⃣ Сравниваем со вчера. Если есть предыдущий снимок:
diff -u /tmp/var.size.yesterday /tmp/var.size.today
Или удобнее, показать только рост:
join -1 2 -2 2 \
<(sort -k2 /tmp/var.size.yesterday) \
<(sort -k2 /tmp/var.size.today) \
| awk '{delta=$3-$1; if (delta>0) printf "%+dK %s\n", delta, $2}' \
| sort -n
На выходе список каталогов, которые реально выросли, с дельтой.
▪️ Зачем это нужно
быстро найти runaway-логи;
поймать тихий рост кешей;
понять, кто ест диск, а не гадать
BashTex 📱 #bash #utils