LINUX
Script de shell para encontrar directorios grandes
En el tutorial, veremos un script de shell que puede encontrar rápidamente el directorio más grande en un servidor Linux. Esto es muy útil si desea limpiar espacio en su sistema de archivos.
El script de shell muestra un número X de directorios que consumen espacio en una ruta de directorio determinada. En el script he usado el comando du, luego los comandos sort y head.
Script para encontrar directorios más grandes
Veamos cómo escribir un script para encontrar los directorios principales de la siguiente manera:
#/bin/bash #check if user input argument if [ $# -eq 0 ]; then #if no argument print next messge and exit from script echo "Usage: $0 " exit 1 fi # Save first arguments to variables CheckedDir="$1" # HeadValue=$2 #set value for variable count value 1 count=1 #just print empty line echo "" #Print next message: echo "Here is the ${HeadValue} biggest directories located in ${CheckedDir}:" echo "" #Getting list of directories and space they use. du -a --max-depth=1 --one-file-system ${CheckedDir}/ | #next we sort result sort -rn | sed "1d" | # next we get only first X directories head -"${HeadValue}" | #next print result to user while read size dirrr ; do #counting size in Mb size="$(( size / 1024 ))" #show output for user echo "N°${count} : ${dirrr} is ${size} Mb" ((count++)) done echo ""
Salida de secuencia de comandos
./top5dir.sh /home/yevhen/ Here is the biggest directories located in /home/yevhen/: N°1 : /home/yevhen//Fly is 14043 Mb N°2 : /home/yevhen//VirtualBox VMs is 5837 Mb N°3 : /home/yevhen//Downloads is 2224 Mb N°4 : /home/yevhen//.icedove is 963 Mb N°5 : /home/yevhen//Downloads is 645 Mb N°6 : /home/yevhen//.wine is 602 Mb N°7 : /home/yevhen//.cache is 324 Mb N°8 : /home/yevhen//Dropbox is 324 Mb N°9 : /home/yevhen//.config is 263 Mb N°10 : /home/yevhen//.local is 153 Mb