{"id":1380,"date":"2026-08-24T20:53:55","date_gmt":"2026-08-25T02:53:55","guid":{"rendered":"https:\/\/folken-it.com\/?p=1380"},"modified":"2026-08-24T20:53:57","modified_gmt":"2026-08-25T02:53:57","slug":"como-encontrar-los-archivos-mas-grandes-en-linux-cuando-un-filesystem-se-queda-sin-espacio","status":"publish","type":"post","link":"https:\/\/folken-it.com\/?p=1380","title":{"rendered":"C\u00f3mo encontrar los archivos m\u00e1s grandes en Linux cuando un filesystem se queda sin espacio"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Una de las alertas m\u00e1s comunes para un <strong>administrador Linux, SysAdmin, DevOps o Production Support<\/strong> es:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Filesystem space usage critical: 95%<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando esto sucede en producci\u00f3n, la primera pregunta es:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 est\u00e1 consumiendo todo el espacio en disco?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Linux proporciona herramientas como <code>df<\/code>, <code>du<\/code>, <code>find<\/code>, <code>sort<\/code> y <code>lsof<\/code> que permiten identificar r\u00e1pidamente d\u00f3nde se est\u00e1 utilizando el espacio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta gu\u00eda veremos un procedimiento pr\u00e1ctico para investigar un filesystem lleno y localizar los archivos y directorios responsables.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Escenario: recibimos una alerta de espacio<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos que nuestro sistema de monitoreo genera la siguiente alerta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CRITICAL ALERT\n\nFilesystem: \/var\nUsage: 95%\nAvailable: 2.1 GB\nHost: linux-prod-01<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El objetivo ser\u00e1 identificar qu\u00e9 est\u00e1 consumiendo <code>\/var<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nuestro flujo de troubleshooting ser\u00e1:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALERTA\n  \u2502\n  \u25bc\ndf -h\n  \u2502\n  \u25bc\nIdentificar filesystem\n  \u2502\n  \u25bc\ndu\n  \u2502\n  \u25bc\nIdentificar directorio\n  \u2502\n  \u25bc\nfind\n  \u2502\n  \u25bc\nIdentificar archivos grandes\n  \u2502\n  \u25bc\nlsof\n  \u2502\n  \u25bc\nBuscar archivos eliminados pero abiertos\n  \u2502\n  \u25bc\nTomar acci\u00f3n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 1: revisar el espacio con <code>df<\/code><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Nuestro primer comando ser\u00e1:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>df -h<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Filesystem                 Size  Used Avail Use% Mounted on\n\/dev\/mapper\/rootvg-root     20G   11G  9.0G  56% \/\n\/dev\/mapper\/rootvg-var      50G   47G  3.0G  94% \/var\n\/dev\/mapper\/rootvg-home     20G  8.0G   12G  40% \/home<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos ver inmediatamente el problema:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var \u2192 94%<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La opci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-h<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">significa <strong>human-readable<\/strong>, por lo que muestra tama\u00f1os como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>KB\nMB\nGB\nTB<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">en lugar de solamente bytes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 2: revisar \u00fanicamente el filesystem afectado<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Si la alerta corresponde a <code>\/var<\/code>, podemos ejecutar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>df -h \/var<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Filesystem              Size  Used Avail Use% Mounted on\n\/dev\/mapper\/rootvg-var    50G   47G  3.0G  94% \/var<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n es \u00fatil revisar los inodos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>df -i \/var<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfPor qu\u00e9?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Porque un filesystem puede quedarse sin capacidad por dos razones diferentes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Problema 1\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nEspacio en disco agotado\n\ndf -h\n\n\nProblema 2\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nInodos agotados\n\ndf -i<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Un servidor con millones de archivos peque\u00f1os puede quedarse sin inodos aunque todav\u00eda tenga espacio disponible.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 3: identificar qu\u00e9 directorio consume el espacio<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora sabemos que <code>\/var<\/code> est\u00e1 lleno.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Necesitamos descubrir <strong>qu\u00e9 directorio dentro de <code>\/var<\/code> es responsable<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos ejecutar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du -xsh \/var\/* 2&gt;\/dev\/null<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>120M    \/var\/cache\n850M    \/var\/lib\n42G     \/var\/log\n25M     \/var\/tmp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed tenemos un sospechoso claro:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/log \u2192 42 GB<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Las opciones utilizadas son:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du\n\u2502\n\u251c\u2500\u2500 -x \u2192 permanecer en el mismo filesystem\n\u251c\u2500\u2500 -s \u2192 mostrar solamente el total\n\u2514\u2500\u2500 -h \u2192 human-readable<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El uso de:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>2&gt;\/dev\/null<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">oculta mensajes de error relacionados, por ejemplo, con permisos insuficientes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 4: ordenar los directorios por tama\u00f1o<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos mejorar el comando anterior:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du -xsh \/var\/* 2&gt;\/dev\/null | sort -h<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto ordenar\u00e1 los resultados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si queremos ver primero los directorios m\u00e1s grandes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du -xsh \/var\/* 2&gt;\/dev\/null | sort -hr<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Resultado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>42G     \/var\/log\n850M    \/var\/lib\n120M    \/var\/cache\n25M     \/var\/tmp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora sabemos exactamente d\u00f3nde continuar.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 5: profundizar en el directorio problem\u00e1tico<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos repetir el procedimiento:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du -xsh \/var\/log\/* 2&gt;\/dev\/null | sort -hr<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>35G     \/var\/log\/myapplication\n3.2G    \/var\/log\/messages\n1.5G    \/var\/log\/audit\n900M    \/var\/log\/httpd<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nuestro siguiente sospechoso es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/log\/myapplication<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Continuamos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du -xsh \/var\/log\/myapplication\/* 2&gt;\/dev\/null | sort -hr<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta t\u00e9cnica permite avanzar progresivamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\n \u2502\n \u2514\u2500\u2500 log\n      \u2502\n      \u2514\u2500\u2500 myapplication\n            \u2502\n            \u2514\u2500\u2500 logs<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">hasta encontrar d\u00f3nde est\u00e1 concentrado el espacio.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 6: encontrar los archivos m\u00e1s grandes<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez identificado el directorio, podemos utilizar <code>find<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var\/log\/myapplication -xdev -type f -printf '%s %p\\n' 2&gt;\/dev\/null \\\n| sort -nr \\\n| head -20<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto devuelve los <strong>20 archivos m\u00e1s grandes<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, los tama\u00f1os aparecer\u00e1n en bytes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos hacerlos m\u00e1s legibles utilizando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var\/log\/myapplication -xdev -type f -printf '%s %p\\n' 2&gt;\/dev\/null \\\n| sort -nr \\\n| head -20 \\\n| numfmt --field=1 --to=iec<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>18G \/var\/log\/myapplication\/server.log\n9.2G \/var\/log\/myapplication\/debug.log\n4.5G \/var\/log\/myapplication\/access.log\n2.1G \/var\/log\/myapplication\/error.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora el problema es evidente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 7: buscar archivos mayores a cierto tama\u00f1o<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos pedirle a <code>find<\/code> que busque archivos superiores a un tama\u00f1o determinado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, archivos mayores a <strong>1 GB<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var -xdev -type f -size +1G -print<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Archivos mayores a <strong>500 MB<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var -xdev -type f -size +500M -print<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Archivos mayores a <strong>100 MB<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var -xdev -type f -size +100M -print<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto es extremadamente \u00fatil durante una emergencia.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 8: encontrar los 20 archivos m\u00e1s grandes del filesystem<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos hacerlo directamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var -xdev -type f -printf '%s %p\\n' 2&gt;\/dev\/null \\\n| sort -nr \\\n| head -20 \\\n| numfmt --field=1 --to=iec<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Conceptualmente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find\n \u2502\n \u2502 encuentra archivos\n \u25bc\nsort -nr\n \u2502\n \u2502 ordena por tama\u00f1o\n \u25bc\nhead -20\n \u2502\n \u2502 toma los primeros 20\n \u25bc\nnumfmt\n \u2502\n \u2502 convierte bytes\n \u25bc\nRESULTADO<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este es uno de los comandos m\u00e1s \u00fatiles de toda la investigaci\u00f3n.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 9: buscar archivos grandes modificados recientemente<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos que ayer <code>\/var<\/code> estaba al 60% y hoy est\u00e1 al 95%.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entonces probablemente existe alg\u00fan archivo que creci\u00f3 recientemente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos buscar archivos mayores a 500 MB modificados durante las \u00faltimas 24 horas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var -xdev -type f -size +500M -mtime -1 -ls 2&gt;\/dev\/null<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para los \u00faltimos dos d\u00edas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var -xdev -type f -size +500M -mtime -2 -ls 2&gt;\/dev\/null<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto puede ayudar a descubrir r\u00e1pidamente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Logs creciendo.<\/li>\n\n\n\n<li>Dumps.<\/li>\n\n\n\n<li>Backups.<\/li>\n\n\n\n<li>Archivos temporales.<\/li>\n\n\n\n<li>Exportaciones.<\/li>\n\n\n\n<li>Core dumps.<\/li>\n\n\n\n<li>Archivos generados por aplicaciones.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 10: buscar archivos eliminados que contin\u00faan abiertos<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Este es uno de los problemas m\u00e1s interesantes en Linux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos que ejecutamos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du -xsh \/var<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">y obtenemos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>25G<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">pero:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>df -h \/var<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">muestra:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>47G utilizados<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfPor qu\u00e9 existe una diferencia tan grande?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una posible explicaci\u00f3n son <strong>archivos eliminados que todav\u00eda permanecen abiertos por alg\u00fan proceso<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En Linux, eliminar un archivo no necesariamente libera inmediatamente el espacio si un proceso todav\u00eda mantiene abierto su file descriptor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos investigar con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lsof +L1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O filtrar por filesystem:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lsof +L1 | grep '\/var'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n es com\u00fan utilizar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lsof | grep deleted<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>java  18452 appuser  15w REG  253,2 21474836480 \/var\/log\/app\/server.log (deleted)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed tenemos un proceso Java:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PID = 18452<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">que mantiene abierto un archivo eliminado de aproximadamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>20 GB<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este espacio puede continuar contabiliz\u00e1ndose en <code>df<\/code> aunque el archivo ya no aparezca normalmente en el directorio.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u00bfPor qu\u00e9 ocurre esto?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Imaginemos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Aplicaci\u00f3n\n    \u2502\n    \u25bc\nserver.log\n    \u2502\n    \u2502 20 GB\n    \u25bc\nFilesystem<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Alguien ejecuta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rm server.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pero la aplicaci\u00f3n contin\u00faa manteniendo abierto el archivo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Aplicaci\u00f3n\n    \u2502\n    \u25bc\nserver.log (deleted)\n    \u2502\n    \u2502 todav\u00eda abierto\n    \u25bc\nFilesystem<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El archivo desapareci\u00f3 del directorio, pero el espacio puede continuar ocupado hasta que el proceso cierre el descriptor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>df -h<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">y:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">pueden mostrar resultados diferentes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">IMPORTANTE: no reinicies ni mates procesos sin investigar<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Si encontramos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>java 18452<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">no debemos ejecutar inmediatamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kill -9 18452<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En producci\u00f3n, esto podr\u00eda provocar una interrupci\u00f3n del servicio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primero debemos determinar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Qu\u00e9 aplicaci\u00f3n utiliza el proceso.<\/li>\n\n\n\n<li>Si pertenece a producci\u00f3n.<\/li>\n\n\n\n<li>Qu\u00e9 servicio depende de \u00e9l.<\/li>\n\n\n\n<li>Si existe redundancia.<\/li>\n\n\n\n<li>Si puede reiniciarse de forma segura.<\/li>\n\n\n\n<li>Si requiere aprobaci\u00f3n.<\/li>\n\n\n\n<li>Si existe un procedimiento operativo.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 11: revisar archivos de logs<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Los logs son una causa muy frecuente de problemas de espacio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos buscar archivos <code>.log<\/code> grandes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var -xdev -type f -name \"*.log\" -size +500M -ls 2&gt;\/dev\/null<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos revisar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du -xsh \/var\/log\/* 2&gt;\/dev\/null | sort -hr<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si un log est\u00e1 creciendo continuamente debemos investigar <strong>por qu\u00e9 est\u00e1 creciendo<\/strong>, no solamente eliminarlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las posibles causas incluyen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Debug habilitado\n        \u2502\n        \u25bc\nDemasiados mensajes\n        \u2502\n        \u25bc\nLog crece r\u00e1pidamente\n        \u2502\n        \u25bc\nFilesystem lleno<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La soluci\u00f3n real podr\u00eda ser:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Corregir el error de aplicaci\u00f3n.<\/li>\n\n\n\n<li>Reducir el nivel de logging.<\/li>\n\n\n\n<li>Configurar rotaci\u00f3n.<\/li>\n\n\n\n<li>Ajustar retenci\u00f3n.<\/li>\n\n\n\n<li>Comprimir logs antiguos.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 12: revisar Logrotate<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">En muchas distribuciones Linux encontramos configuraciones en:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/logrotate.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">y:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/logrotate.d\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos revisar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat \/etc\/logrotate.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">o:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -l \/etc\/logrotate.d\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Una mala configuraci\u00f3n de rotaci\u00f3n puede permitir que un archivo crezca indefinidamente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 13: buscar core dumps<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Los <strong>core dumps<\/strong> tambi\u00e9n pueden ocupar enormes cantidades de espacio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos buscarlos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/ -xdev -type f -name \"core*\" -size +100M -ls 2&gt;\/dev\/null<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dependiendo de la configuraci\u00f3n del servidor, tambi\u00e9n puede ser necesario revisar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>coredumpctl list<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En servidores de aplicaciones, un dump puede tener varios gigabytes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 14: buscar archivos antiguos<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">En algunos casos el filesystem contiene informaci\u00f3n que nunca fue eliminada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, archivos con m\u00e1s de 90 d\u00edas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var\/log -xdev -type f -mtime +90 -ls 2&gt;\/dev\/null<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos combinar edad y tama\u00f1o:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var\/log -xdev -type f -mtime +90 -size +100M -ls 2&gt;\/dev\/null<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto identifica archivos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>m\u00e1s antiguos de 90 d\u00edas\n            +\nmayores de 100 MB<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pero identificarlos <strong>no significa que podamos eliminarlos autom\u00e1ticamente<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Paso 15: liberar espacio de forma segura<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez encontrado el problema, debemos decidir qu\u00e9 acci\u00f3n realizar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Algunas posibilidades son:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Comprimir logs antiguos.<\/li>\n\n\n\n<li>Eliminar archivos temporales aprobados.<\/li>\n\n\n\n<li>Mover archivos a otro filesystem.<\/li>\n\n\n\n<li>Corregir una aplicaci\u00f3n que genera demasiados logs.<\/li>\n\n\n\n<li>Configurar <code>logrotate<\/code>.<\/li>\n\n\n\n<li>Reducir pol\u00edticas de retenci\u00f3n.<\/li>\n\n\n\n<li>Limpiar dumps antiguos.<\/li>\n\n\n\n<li>Extender el filesystem si el crecimiento es leg\u00edtimo.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de eliminar cualquier archivo debemos saber:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>qu\u00e9 aplicaci\u00f3n lo utiliza y si existe alguna pol\u00edtica de retenci\u00f3n.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">No hagas esto directamente en producci\u00f3n<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Un comando como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var\/log -type f -mtime +30 -delete<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">puede parecer conveniente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero puede ser extremadamente peligroso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podr\u00edamos eliminar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Logs necesarios para auditor\u00eda.<\/li>\n\n\n\n<li>Informaci\u00f3n requerida por seguridad.<\/li>\n\n\n\n<li>Evidencia para troubleshooting.<\/li>\n\n\n\n<li>Archivos requeridos por una aplicaci\u00f3n.<\/li>\n\n\n\n<li>Informaci\u00f3n sujeta a pol\u00edticas de retenci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Primero:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>IDENTIFICAR\n     \u2193\nANALIZAR\n     \u2193\nVALIDAR\n     \u2193\nRESPALDAR si es necesario\n     \u2193\nELIMINAR<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Procedimiento r\u00e1pido para Production Support<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando llega una alerta de filesystem, podemos seguir esta secuencia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Verificar filesystem<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>df -h<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. Verificar inodos<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>df -i<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. Identificar directorios grandes<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>du -xsh \/var\/* 2&gt;\/dev\/null | sort -hr<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. Profundizar<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>du -xsh \/var\/log\/* 2&gt;\/dev\/null | sort -hr<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">5. Encontrar los 20 archivos m\u00e1s grandes<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var -xdev -type f -printf '%s %p\\n' 2&gt;\/dev\/null \\\n| sort -nr \\\n| head -20 \\\n| numfmt --field=1 --to=iec<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">6. Buscar archivos grandes recientes<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var -xdev -type f -size +500M -mtime -1 -ls 2&gt;\/dev\/null<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">7. Buscar archivos eliminados pero abiertos<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>lsof +L1 | grep '\/var'<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">8. Investigar antes de eliminar<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\u00bfQui\u00e9n cre\u00f3 el archivo?\n\u00bfLa aplicaci\u00f3n todav\u00eda lo utiliza?\n\u00bfExiste pol\u00edtica de retenci\u00f3n?\n\u00bfPuede comprimirse?\n\u00bfPuede moverse?\n\u00bfPuede eliminarse?<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Cheat Sheet: problemas de espacio en Linux<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Objetivo<\/th><th>Comando<\/th><\/tr><\/thead><tbody><tr><td>Ver filesystems<\/td><td><code>df -h<\/code><\/td><\/tr><tr><td>Revisar <code>\/var<\/code><\/td><td><code>df -h \/var<\/code><\/td><\/tr><tr><td>Revisar inodos<\/td><td><code>df -i \/var<\/code><\/td><\/tr><tr><td>Directorios m\u00e1s grandes<\/td><td><code>du -xsh \/var\/* | sort -hr<\/code><\/td><\/tr><tr><td>Archivos &gt;1 GB<\/td><td><code>find \/var -xdev -type f -size +1G<\/code><\/td><\/tr><tr><td>Archivos &gt;500 MB<\/td><td><code>find \/var -xdev -type f -size +500M<\/code><\/td><\/tr><tr><td>Archivos recientes grandes<\/td><td><code>find \/var -xdev -type f -size +500M -mtime -1 -ls<\/code><\/td><\/tr><tr><td>Top 20 archivos<\/td><td><code>find \/var -xdev -type f -printf '%s %p\\n' | sort -nr | head -20<\/code><\/td><\/tr><tr><td>Archivos eliminados abiertos<\/td><td><code>lsof +L1<\/code><\/td><\/tr><tr><td>Logs grandes<\/td><td><code>find \/var -xdev -type f -name \"*.log\" -size +500M<\/code><\/td><\/tr><tr><td>Archivos &gt;90 d\u00edas<\/td><td><code>find \/var -xdev -type f -mtime +90<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">El comando que todo administrador Linux deber\u00eda recordar<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Si necesito investigar r\u00e1pidamente un filesystem como <code>\/var<\/code>, normalmente comenzar\u00eda con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du -xsh \/var\/* 2&gt;\/dev\/null | sort -hr<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s buscar\u00eda los archivos m\u00e1s grandes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/var -xdev -type f -printf '%s %p\\n' 2&gt;\/dev\/null \\\n| sort -nr \\\n| head -20 \\\n| numfmt --field=1 --to=iec<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y si los n\u00fameros de <code>df<\/code> y <code>du<\/code> no parecen coincidir:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lsof +L1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta combinaci\u00f3n permite resolver una gran cantidad de incidentes relacionados con espacio.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Conclusi\u00f3n<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando recibimos una alerta indicando que un filesystem Linux est\u00e1 llegando al l\u00edmite, <strong>el objetivo no deber\u00eda ser simplemente eliminar archivos hasta que desaparezca la alerta<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El procedimiento correcto es encontrar la causa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un buen troubleshooting sigue una secuencia:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>df\n \u2193\n\u00bfQu\u00e9 filesystem est\u00e1 lleno?\n\ndu\n \u2193\n\u00bfQu\u00e9 directorio consume el espacio?\n\nfind\n \u2193\n\u00bfQu\u00e9 archivos son responsables?\n\nlsof\n \u2193\n\u00bfExisten archivos eliminados pero abiertos?\n\nAN\u00c1LISIS\n \u2193\n\u00bfPor qu\u00e9 crecieron?\n\nACCI\u00d3N\n \u2193\nEliminar \/ Comprimir \/ Rotar \/ Mover \/ Extender\n\nPREVENCI\u00d3N\n \u2193\nEvitar que vuelva a ocurrir<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Comandos como <strong><code>df<\/code>, <code>du<\/code>, <code>find<\/code>, <code>sort<\/code>, <code>head<\/code>, <code>lsof<\/code> y <code>logrotate<\/code><\/strong> forman parte de las herramientas esenciales de cualquier administrador Linux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La diferencia entre solucionar temporalmente una alerta y realizar un buen trabajo de Production Support est\u00e1 en una pregunta:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfLiberamos espacio o encontramos la causa que estaba consumiendo el espacio?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En producci\u00f3n, casi siempre necesitamos hacer ambas cosas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una de las alertas m\u00e1s comunes para un administrador Linux, SysAdmin, DevOps o Production Support es: Filesystem space usage critical: 95% Cuando [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1381,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"file system grande","jetpack_seo_html_title":"linux","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[52,5],"tags":[],"class_list":["post-1380","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bash","category-linux"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/folken-it.com\/wp-content\/uploads\/2026\/08\/filesystems.png?fit=1024%2C1536&ssl=1","_links":{"self":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts\/1380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1380"}],"version-history":[{"count":1,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts\/1380\/revisions"}],"predecessor-version":[{"id":1382,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts\/1380\/revisions\/1382"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/media\/1381"}],"wp:attachment":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}