利用shell腳本清除docker已經退出的容器, 沒有在使用的docker鏡像以及docker容器中程序產生的日誌

docker程序在跑了一段時間之後,發現服務器的磁盤不夠了,分享一份shell腳本

#!/bin/bash

# 清理容器中運行的程序產生的日誌
baseDir=/var/lib/docker/containers
dir=$(ls -l $baseDir |awk '/^d/ {print $NF}')
for i in $dir
do
 newDir=$baseDir/$i
 for y in ${newDir}/*
 do
  if [[ $y =~ \.log$ ]];then
   echo "" > $y
  fi
 done
done

sleep 5

# 清理爲退出狀態的容器
COMMAND_DOCKERRM="docker rm   `docker ps -a | grep Exited | awk '{print $1}'`"
DOCKERRM=$($COMMAND_DOCKERRM)
echo $DOCKERRM

sleep 10
# 清理沒有在使用的鏡像
COMMAND_DOCKERRMI="docker rmi  `docker images | awk '{print $3}'`"
DOCKERRMI=$($COMMAND_DOCKERRMI)
echo $DOCKERRMI

# 清理chrome瀏覽器
for i in `ps auxf | grep chrome |awk '{print $2}'`;do kill -9 $i;echo $i isok;done
# 清理chrome驅動
for i in `ps auxf | grep chromedriver |awk '{print $2}'`;do kill -9 $i;echo $i isok;done

# 清理殭屍進程
ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章