En ocasiones estamos en la terminal y no tenemos muy claro cuánto espacio están ocupando los distintos tipos de archivo en determinado directorio.
Para conocer justamente esto, hice el siguiente script:
#! /bin/sh
# fsize version 0.3 (2017-10-28) por Hugo Florentino
# Lista en orden descendente el espacio ocupado por diferentes tipos de archivos
#
# Para mayor comodidad, copiar en una ruta como /usr/local/bin/
if [ $# -eq 0 ]; then
TARGETDIR=$(pwd)
elif [ $# -eq 1 ] && [ -d "$1" ]; then
TARGETDIR="${1}"
else
echo "El argumento debe ser un directorio (de no especificarse, se utiliza el actual)."
exit -1
fi
# Variable para identificar archivos sin una extensión
UNSPEC=Otros
RESULTS=$(find -P "${TARGETDIR}" -type f -printf "%s.%f\n" \
| awk -v NA="${UNSPEC}" -F "." '{if (NF>2) ext=$NF; else ext=NA;
filetype[ext]++; filesize[ext]+=$1;} END {for (s in filetype)
printf("%s %0.0f %12.0f\n", s, filetype[s], filesize[s])}' \
| sort -k3 -nr | awk '{printf "%s (%s);%\047.2f MiB\n",
$1, $2, $3/(1024*1024)}' | column -ts ';')
# Paginar resultados, de ser necesario
if [ $(echo "${RESULTS}" | wc -l) -gt $(tput lines) ]; then
if [ -z "${PAGER}" ]; then
PAGER=$(which pager)
fi
echo "${RESULTS}" | "${PAGER}"
else
echo "${RESULTS}"
fi
unset UNSPEC TARGETDIR
exit
El script no será la gran cosa, pero ejemplifica varias técnicas, espero que lo encuentren interesante. (Al ejecutarse, el número entre paréntesis representa la cantidad de archivos para cada tipo).
Nota: Aparentemente los nombre de archivos muy largos pueden ser un problema para mawk (la implementación de awk instalada por defecto en algunas distribuciones), así que recomiendo reemplazarla por gawk.
Me complace anunciar la creación de esta útil herramienta (SquidStats), para el análisis y monitoreo…
La inteligencia artificial está revolucionando las industrias al automatizar tareas, predecir patrones y permitiendo tomar…
Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…
Percona Monitoring and Management (PMM) es una herramienta de código abierto para la supervisión y…
Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…
Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…