{"id":1389,"date":"2026-08-27T12:24:45","date_gmt":"2026-08-27T18:24:45","guid":{"rendered":"https:\/\/folken-it.com\/?p=1389"},"modified":"2026-08-27T12:29:27","modified_gmt":"2026-08-27T18:29:27","slug":"25-comandos-linux-esenciales-para-soporte-de-aplicaciones","status":"publish","type":"post","link":"https:\/\/folken-it.com\/?p=1389","title":{"rendered":"25 comandos Linux esenciales para Soporte de Aplicaciones"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Cuando trabajas como <strong>Application Support Engineer<\/strong>, Linux se convierte en una de las herramientas m\u00e1s importantes para investigar incidentes en producci\u00f3n ya que aqu\u00ed es donde la magia se crea.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un problema puede comenzar con un mensaje tan sencillo como:<\/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\"><em>&#8220;La aplicaci\u00f3n est\u00e1 lenta.&#8221;<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Pero detr\u00e1s de esa alerta puede existir un filesystem lleno, falta de memoria, un proceso Java consumiendo CPU, problemas de conectividad, errores en logs, certificados vencidos o simplemente un servicio que dej\u00f3 de responder.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso, estos son algunos de los <strong>comandos Linux que considero m\u00e1s \u00fatiles en la operaci\u00f3n diaria de soporte L3<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Verificar el espacio disponible: <code>df<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Uno de los primeros comandos que utilizo cuando existe una alerta de filesystem es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>df -h<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Permite identificar r\u00e1pidamente particiones con poco espacio disponible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n puedes revisar un filesystem espec\u00edfico:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>df -h \/opt\ndf -h \/var\ndf -h \/tmp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Una partici\u00f3n al 100% puede provocar que una aplicaci\u00f3n no pueda generar logs, archivos temporales o incluso iniciar correctamente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Encontrar qu\u00e9 directorios consumen m\u00e1s espacio: <code>du<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de encontrar un filesystem lleno, necesitamos saber <strong>qu\u00e9 est\u00e1 consumiendo el espacio<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du -sh *<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para ordenar los directorios por tama\u00f1o:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du -sh * | sort -h<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Otra opci\u00f3n muy \u00fatil:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>du -x \/var | sort -n | tail -20<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto ayuda a localizar logs, dumps, temporales o archivos antiguos que est\u00e1n consumiendo almacenamiento.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Encontrar archivos: <code>find<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>find<\/code> es indispensable para investigar servidores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Buscar archivos <code>.log<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/opt -type f -name \"*.log\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Buscar archivos mayores a 1 GB:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/ -type f -size +1G 2&gt;\/dev\/null<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Buscar archivos modificados durante las \u00faltimas 24 horas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/opt\/app -type f -mtime -1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Buscar archivos modificados durante los \u00faltimos 30 minutos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/opt\/app -type f -mmin -30<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Investigar logs con <code>grep<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Probablemente uno de los comandos m\u00e1s utilizados en soporte de aplicaciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Buscar errores:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>grep -i \"error\" application.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Buscar excepciones Java:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>grep -i \"exception\" application.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Buscar m\u00faltiples patrones:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>grep -Ei \"error|exception|failed|critical\" application.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mostrar el n\u00famero de l\u00ednea:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>grep -in \"error\" application.log<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Analizar archivos con <code>less<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando un log tiene cientos de MB o varios GB, abrirlo con un editor no siempre es buena idea.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>less application.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dentro de <code>less<\/code> podemos buscar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/error<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Siguiente coincidencia:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Coincidencia anterior:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>N<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Salir:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>q<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Monitorear logs en tiempo real con <code>tail<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para observar lo que est\u00e1 haciendo una aplicaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tail -f application.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mostrar las \u00faltimas 100 l\u00edneas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tail -100 application.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Combinarlo con <code>grep<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tail -f application.log | grep -i error<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este comando resulta especialmente \u00fatil durante <strong>deployments, restarts y troubleshooting en producci\u00f3n<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Revisar procesos con <code>ps<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para verificar si una aplicaci\u00f3n Java est\u00e1 ejecut\u00e1ndose:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ps -ef | grep java<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Buscar WebLogic:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ps -ef | grep -i weblogic<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Buscar Tomcat:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ps -ef | grep -i tomcat<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Una combinaci\u00f3n que utilizo frecuentemente es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ps -ef | grep java | grep -v grep<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">8. Analizar CPU y memoria con <code>top<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando recibimos un incidente indicando que <em>&#8220;la aplicaci\u00f3n est\u00e1 lenta&#8221;<\/em>, uno de los primeros pasos es revisar los recursos del servidor.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>top<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed podemos observar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CPU utilizada<\/li>\n\n\n\n<li>memoria<\/li>\n\n\n\n<li>load average<\/li>\n\n\n\n<li>procesos<\/li>\n\n\n\n<li>PID<\/li>\n\n\n\n<li>tiempo de CPU<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos analizar un proceso espec\u00edfico:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>top -p PID<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">9. Revisar memoria con <code>free<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para verificar r\u00e1pidamente la memoria del servidor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>free -h<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nos permite revisar memoria total, utilizada, disponible y swap.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es particularmente \u00fatil cuando investigamos problemas relacionados con aplicaciones Java.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">10. Identificar puertos abiertos con <code>ss<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una aplicaci\u00f3n puede estar ejecut\u00e1ndose pero no estar escuchando en el puerto esperado.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -lntp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Buscar un puerto espec\u00edfico:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -lntp | grep 7001<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, si esperamos que WebLogic escuche en el puerto <code>7001<\/code>, este comando permite comprobarlo r\u00e1pidamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En servidores antiguos tambi\u00e9n podemos encontrar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>netstat -lntp<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">11. Probar conectividad con <code>curl<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En soporte de aplicaciones modernas, <code>curl<\/code> es indispensable para probar APIs y servicios HTTP.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl https:\/\/server\/application<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mostrar headers:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -I https:\/\/server\/application<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mostrar informaci\u00f3n detallada de la conexi\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -v https:\/\/server\/application<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Probar una API:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -X GET https:\/\/api.example.com\/status<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s de HTTP, <code>curl -v<\/code> puede proporcionar informaci\u00f3n muy valiosa durante troubleshooting de <strong>TLS, certificados, proxies y APIs REST<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">12. Probar DNS con <code>nslookup<\/code> y <code>dig<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Muchos problemas aparentemente relacionados con aplicaciones terminan siendo problemas de resoluci\u00f3n DNS.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nslookup server.example.com<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos utilizar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dig server.example.com<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Una prueba r\u00e1pida:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dig +short server.example.com<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">13. Probar conectividad hacia un puerto<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para verificar si un servidor remoto acepta conexiones:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nc -vz server.example.com 443<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Otro ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nc -vz database.example.com 1521<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto ayuda a diferenciar r\u00e1pidamente entre un problema de aplicaci\u00f3n y uno de <strong>red, firewall o conectividad<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">14. Revisar archivos abiertos con <code>lsof<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para saber qu\u00e9 proceso est\u00e1 utilizando un puerto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lsof -i :8080<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos revisar archivos abiertos por un proceso:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lsof -p PID<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O encontrar procesos utilizando determinado archivo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lsof \/path\/application.log<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">15. Revisar informaci\u00f3n de un proceso en <code>\/proc<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una de las ventajas de Linux es que podemos investigar directamente informaci\u00f3n del proceso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat \/proc\/PID\/status<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Revisar variables de ambiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tr '\\0' '\\n' &lt; \/proc\/PID\/environ<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Revisar el comando utilizado para iniciar el proceso:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tr '\\0' ' ' &lt; \/proc\/PID\/cmdline<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto puede ser extremadamente \u00fatil investigando aplicaciones Java.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">16. Revisar servicios con <code>systemctl<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En sistemas modernos basados en <code>systemd<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status application<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Iniciar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl start application<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Detener:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl stop application<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Reiniciar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart application<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Revisar logs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>journalctl -u application<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">17. Revisar logs del sistema con <code>journalctl<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Consultar eventos recientes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>journalctl -xe<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Logs de un servicio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>journalctl -u application.service<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00daltimas 100 l\u00edneas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>journalctl -u application.service -n 100<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Seguir los eventos en tiempo real:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>journalctl -u application.service -f<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">18. Buscar informaci\u00f3n hist\u00f3rica con <code>history<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Durante un incidente tambi\u00e9n puede ser \u00fatil saber qu\u00e9 comandos fueron ejecutados recientemente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>history<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Buscar comandos relacionados con una aplicaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>history | grep weblogic<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Buscar reinicios:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>history | grep restart<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Naturalmente, el historial disponible depender\u00e1 de la configuraci\u00f3n del shell y del usuario.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">19. Verificar qui\u00e9n est\u00e1 conectado al servidor<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>who<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>w<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y para revisar accesos anteriores:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>last<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto puede ser \u00fatil cuando varias personas est\u00e1n trabajando simult\u00e1neamente durante un incidente cr\u00edtico.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">20. Analizar archivos con <code>awk<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>awk<\/code> es extremadamente \u00fatil para procesar logs y resultados de comandos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, obtener la quinta columna:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk '{print $5}' archivo.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En archivos CSV:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>awk -F',' '{print $5}' archivo.csv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n podemos combinarlo con otros comandos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ps -ef | awk '{print $1,$2,$8}'<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">21. Procesar texto con <code>sed<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, reemplazar texto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed 's\/ERROR\/WARNING\/g' archivo.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mostrar determinadas l\u00edneas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sed -n '100,120p' application.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>sed<\/code>, <code>awk<\/code> y <code>grep<\/code> forman una combinaci\u00f3n extremadamente poderosa para analizar grandes cantidades de informaci\u00f3n.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">22. Ordenar y contar resultados<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Comandos como <code>sort<\/code>, <code>uniq<\/code> y <code>wc<\/code> son muy \u00fatiles durante troubleshooting.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sort archivo.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Contar l\u00edneas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wc -l archivo.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Contar valores \u00fanicos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sort archivo.txt | uniq -c<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ordenarlos por frecuencia:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sort archivo.txt | uniq -c | sort -nr<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto puede ayudarnos, por ejemplo, a encontrar los errores que aparecen con mayor frecuencia.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">23. Revisar conexiones de red<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -ant<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos analizar conexiones hacia un puerto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -ant | grep :443<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O contar conexiones por estado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -ant | awk '{print $1}' | sort | uniq -c<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Muy \u00fatil cuando investigamos problemas de saturaci\u00f3n o conectividad.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">24. Revisar certificados SSL\/TLS con <code>openssl<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En ambientes empresariales, muchos incidentes est\u00e1n relacionados con certificados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Consultar un servidor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>openssl s_client -connect server.example.com:443<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mostrar informaci\u00f3n del certificado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>openssl s_client -connect server.example.com:443 &lt;\/dev\/null 2&gt;\/dev\/null |\nopenssl x509 -noout -subject -issuer -dates<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto permite revisar r\u00e1pidamente el <strong>subject, issuer y fechas de validez<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">25. Revisar carga del servidor con <code>uptime<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un comando sencillo pero extremadamente \u00fatil:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>uptime<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s del tiempo que lleva encendido el servidor, muestra el <strong>load average<\/strong> de los \u00faltimos 1, 5 y 15 minutos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Un escenario real de troubleshooting L3<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos que recibimos el incidente:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&#8220;La aplicaci\u00f3n de producci\u00f3n no responde.&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En lugar de reiniciar inmediatamente el servicio, podemos investigar:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u00bfEl servidor tiene recursos?<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>uptime\nfree -h\ndf -h\ntop<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u00bfLa aplicaci\u00f3n est\u00e1 ejecut\u00e1ndose?<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>ps -ef | grep java<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. \u00bfEst\u00e1 escuchando en el puerto?<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -lntp | grep 8080<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. \u00bfResponde localmente?<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -v http:\/\/localhost:8080\/application<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">5. \u00bfQu\u00e9 dicen los logs?<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>tail -100 application.log\ngrep -Ei \"error|exception|failed\" application.log<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">6. \u00bfExiste conectividad con las dependencias?<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>nc -vz database-server 1521\nnc -vz api-server 443<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">7. \u00bfExiste alg\u00fan problema DNS?<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>dig api-server.example.com<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Con unos cuantos comandos podemos comenzar a determinar si estamos frente a un problema de <strong>aplicaci\u00f3n, JVM, filesystem, memoria, CPU, red, DNS, base de datos o servicio externo<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Cheat Sheet \u2014 Linux para Application Support L3<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>FILESYSTEM\ndf -h\ndu -sh *\nfind \/ -type f -size +1G\n\nLOGS\ntail -f application.log\nless application.log\ngrep -Ei \"error|exception|failed\" application.log\n\nPROCESSES\nps -ef | grep java\ntop\nfree -h\n\nNETWORK\nss -lntp\nnc -vz host port\ndig hostname\n\nHTTP \/ APIs\ncurl -v URL\ncurl -I URL\n\nSERVICES\nsystemctl status service\njournalctl -u service\n\nSSL\/TLS\nopenssl s_client -connect host:443\n\nTEXT PROCESSING\ngrep\nawk\nsed\nsort\nuniq\nwc\n\nSERVER\nuptime\nwho\nw\nlast<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Trabajar como <strong>Application Support Engineer<\/strong> no significa simplemente reiniciar servicios cuando algo falla.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El verdadero trabajo consiste en <strong>recopilar evidencia, correlacionar logs, analizar procesos, revisar recursos, validar conectividad y encontrar la causa ra\u00edz del problema<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de a\u00f1os trabajando con Linux, middleware, aplicaciones Java, APIs, bases de datos y ambientes distribuidos, comandos aparentemente sencillos como <code>grep<\/code>, <code>find<\/code>, <code>ps<\/code>, <code>top<\/code>, <code>curl<\/code>, <code>ss<\/code>, <code>awk<\/code> y <code>tail<\/code> terminan convirti\u00e9ndose en algunas de las herramientas m\u00e1s importantes para resolver incidentes cr\u00edticos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dominar Linux no significa memorizar cientos de comandos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Significa saber <strong>qu\u00e9 comando utilizar cuando producci\u00f3n est\u00e1 fallando y necesitas descubrir por qu\u00e9.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cuando trabajas como Application Support Engineer, Linux se convierte en una de las herramientas m\u00e1s importantes para investigar incidentes en producci\u00f3n ya [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1390,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"25 comandos Linux esenciales para Soporte de Aplicaciones","jetpack_seo_html_title":"comandos Linux para soporte de aplicaciones","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":[5,61,60],"tags":[],"class_list":["post-1389","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","category-production_support","category-sysadmin"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/folken-it.com\/wp-content\/uploads\/2026\/08\/commandosLinux.png?fit=1536%2C1024&ssl=1","_links":{"self":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts\/1389","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=1389"}],"version-history":[{"count":1,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts\/1389\/revisions"}],"predecessor-version":[{"id":1391,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/posts\/1389\/revisions\/1391"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=\/wp\/v2\/media\/1390"}],"wp:attachment":[{"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/folken-it.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}