Невозможно удалить сетевые мосты в Fedora 33 и Docker

Надеюсь, нам не нужно беспокоиться о том, есть ли у нас одна папка или несколько папок. если мы удалим файлы с измененным временем.

Просто проверьте Хранилище и удалите 10 самых старых файлов в папке

if [ $CurrentStorage -ge $StorageThreshold ];
then
  find $RootFolder -type f -printf '%T+ %p\n' | sort  | head -n 10 | awk '{print $NF}' | xargs rm -f
else
  echo "Storage threshold not yet reached."
fi
  • -type f -printf '%T+ %p\n'распечатать файлы с отметкой времени последнего изменения.
  • sort, чтобы получить самый старый файл сверху.
  • head -n 10, чтобы получить 10 самых старых файлов.
  • awk '{print $NF}', чтобы извлечь путь к файлу.
  • xargs rm -fудалить извлеченные файлы.

Для MAC:

 find $RootFolder -type f -print0 | xargs -0 ls -ltr | head -n 10 | awk '{print $NF}' | xargs rm -f

Да и пустая папка вряд ли займет место в 4Кб. Если вы хотите удалить все пустые папки, кроме последней, включите приведенный ниже код.

  find $RootFolder -type d -empty -printf '%T+ %p\n' | sort | head -n -1 | xargs rm -rf

Или

 ls -lt $RootFolder/* | awk -F ":" '/total 0/{print last}{last=$1}' | tail -n +2 | xargs rm -rf
  • Будут удалены все пустые папки, кроме самой последней.
1
09.06.2021, 18:44
1 ответ

Я понял, почему docker продолжает воссоздавать мосты. Кажется, они хранятся в /var/lib/docker/network/files/local-kv.db, бинарном файле (BoltDB ), что объясняет, почему я не поймал его с помощью grep.

Удаление файла и перезапуск Docker решили мою проблему. Следующие команды (выполняются в zsh, другие оболочки могут отличаться )удаляют все мосты, вышеупомянутый файл и перезапускают службу докера. После этого я могу создать сеть докеров без ошибок.

while read; do
  if [ ! -z "$REPLY" ]; then
    sudo ip link del $REPLY
  fi
done <<<"$(brctl show | grep '^br-' | awk '{print $1}')"
sudo rm /var/lib/docker/network/files/local-kv.db
sudo systemctl restart docker
0
28.07.2021, 11:26

Теги

Похожие вопросы