Чистка Docker volume bash скриптом

Введение

В этой статье вы можете изучить скрипт с помощью которого на Ubuntu Linux чистится место, занятое кафкой в Docker контейнере .

О том как искать файлы, которые занимают много места вы можете прочитать в статье «Свободное место на диске в Linux»

В этом скрипте подразумевается, что переменной VOLUME присвоено значение, соответствующее реальной volume.

Пример

После того как указана VOLUME нужно определиться с тем какие файлы подлежат удалению. В этом примере удаляются файлы с расширеним log, index, timeindex.

Топики кафки перечислены в массиве topics

#!/bin/bash # Should be run with sudo: # sudo free_docker_volume_space.sh VOLUME=9f58ba6e027622d11fdc5a67abee3bwc530bf412e1001dd14af7c5ad98ba7c4c EXTENSIONS=(log index timeindex) declare -a topics=("topic1" "topic2" ) for topic in "${topics[@]}"; do echo "Removing ${topic} related logs and indexes" TOPIC_PATH="/var/lib/docker/volumes/${VOLUME}/_data/${topic}" cd $TOPIC_PATH for file in ./*; do EXT="${file##*.}" if [[ " ${EXTENSIONS[*]} " =~ " ${EXT} " ]]; then echo "Removing ${FILENAME}"; rm $file fi done done

Article author: Andrei Olegovich