D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
tmp
/
Filename :
diag.sh
back
Copy
#!/bin/bash echo "================================================" echo "DIAGNÓSTICO DEL SERVIDOR - $(date)" echo "================================================" echo "" echo "========== 1. CARGA Y UPTIME ==========" uptime echo "" echo "CPU cores: $(nproc)" echo "" echo "========== 2. MEMORIA ==========" free -h echo "" echo "========== 3. TOP 15 PROCESOS POR CPU ==========" ps aux --sort=-%cpu | head -16 echo "" echo "========== 4. TOP 15 PROCESOS POR MEMORIA ==========" ps aux --sort=-%mem | head -16 echo "" echo "========== 5. CONTEO DE PROCESOS PHP POR USUARIO ==========" ps -eo user,comm | grep -E "php|httpd|apache" | awk '{print $1}' | sort | uniq -c | sort -rn echo "" echo "========== 6. CONTEO DE PROCESOS PHP POR SITIO ==========" ps -eo args | grep php-cgi | grep -oP '/home/[^/]+/[^/]+' | sort | uniq -c | sort -rn | head -20 echo "" echo "========== 7. CONEXIONES APACHE POR IP (TOP 20) ==========" netstat -ntu 2>/dev/null | awk '$5 ~ /:(80|443)$/ {print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20 echo "" echo "========== 8. TOTAL CONEXIONES ESTABLECIDAS ==========" netstat -an 2>/dev/null | grep ESTABLISHED | wc -l echo "A puerto 80/443:" netstat -an 2>/dev/null | grep -E ":(80|443) " | grep ESTABLISHED | wc -l echo "A MySQL (3306):" netstat -an 2>/dev/null | grep ":3306 " | grep ESTABLISHED | wc -l echo "" echo "========== 9. MYSQL PROCESSLIST ==========" mysqladmin processlist 2>/dev/null | head -50 echo "" echo "========== 10. MYSQL: QUERIES POR DB ==========" mysql -e "SELECT db, COUNT(*) as queries FROM information_schema.processlist WHERE db IS NOT NULL GROUP BY db ORDER BY queries DESC;" 2>/dev/null echo "" echo "========== 11. MYSQL: QUERIES LENTAS (>5s) ==========" mysql -e "SELECT id, user, host, db, time, state, LEFT(info,150) as query FROM information_schema.processlist WHERE command != 'Sleep' AND time > 5 ORDER BY time DESC LIMIT 20;" 2>/dev/null echo "" echo "========== 12. MYSQL STATUS ==========" mysqladmin status 2>/dev/null echo "" echo "========== 13. IO WAIT Y CPU (vmstat) ==========" vmstat 1 3 echo "" echo "========== 14. DISCO ==========" df -h | grep -vE '^tmpfs|^devtmpfs' echo "" echo "========== 15. ÚLTIMAS LÍNEAS LOG APACHE ERROR ==========" tail -30 /usr/local/apache/logs/error_log 2>/dev/null || tail -30 /var/log/apache2/error.log 2>/dev/null || tail -30 /var/log/httpd/error_log 2>/dev/null echo "" echo "========== 16. REQUESTS RECIENTES POR DOMINIO (últimos 1000 hits) ==========" for log in /usr/local/apache/domlogs/*; do if [ -f "$log" ] && [ -s "$log" ]; then count=$(tail -1000 "$log" 2>/dev/null | wc -l) domain=$(basename "$log") echo "$count $domain" fi done 2>/dev/null | sort -rn | head -15 echo "" echo "========== 17. TOP IPs ATACANDO (dominio problemático) ==========" if [ -f /usr/local/apache/domlogs/ettien.ensad.edu.pe ]; then echo "--- ettien.ensad.edu.pe (últimas 2000 líneas) ---" tail -2000 /usr/local/apache/domlogs/ettien.ensad.edu.pe | awk '{print $1}' | sort | uniq -c | sort -rn | head -10 fi echo "" echo "========== 18. CUENTAS cPanel Y USO ==========" ls /var/cpanel/users/ 2>/dev/null echo "" echo "========== 19. VERSIÓN PHP Y HANDLER ==========" /usr/local/cpanel/bin/rebuild_phpconf --current 2>/dev/null echo "" echo "========== 20. CLOUDLINUX? ==========" which lvectl 2>/dev/null && echo "CloudLinux INSTALADO" || echo "CloudLinux NO instalado" echo "" echo "================================================" echo "DIAGNÓSTICO COMPLETADO" echo "================================================"