Plesk
This commit is contained in:
136
plesk/domainstatus.sh
Normal file
136
plesk/domainstatus.sh
Normal file
@@ -0,0 +1,136 @@
|
||||
#!/bin/bash
|
||||
# --- CONFIGURACIÓN DE COLORES ---
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# --- CONFIGURACIÓN DE LÍMITES ---
|
||||
DEFAULT_UPLOAD="8" #MB
|
||||
DEFAULT_POST="8" #MB
|
||||
DEFAULT_TIME="30"
|
||||
RAM_HIGH="256"
|
||||
PROCESS_LIMIT=5 # Límite para marcar en rojo los procesos
|
||||
|
||||
# --- PRE-CALCULO DE PROCESOS PHP-FPM ---
|
||||
declare -A PROCESS_MAP
|
||||
|
||||
echo "Analizando procesos PHP-FPM..."
|
||||
|
||||
while read -r count domain; do
|
||||
domain=$(echo "$domain" | xargs)
|
||||
PROCESS_MAP["$domain"]=$count
|
||||
done < <(ps aux | grep 'php-fpm: pool' | grep -v grep | awk '{print $NF}' | sort | uniq -c)
|
||||
|
||||
# --- OBTENER DOMINIOS ---
|
||||
if command -v plesk &> /dev/null; then
|
||||
DOMAINS=$(plesk bin site --list)
|
||||
else
|
||||
DOMAINS=$(ls /var/www/vhosts/ | grep "\.")
|
||||
fi
|
||||
|
||||
# --- IMPRIMIR CABECERA ---
|
||||
# He ajustado los anchos y añadido la columna HANDLER al final
|
||||
printf "%-30s %-8s %-12s %-12s %-12s %-10s %-10s %-20s\n" "DOMINIO" "PROCS" "RAM (Lim)" "UPLOAD" "POST" "TIME" "PHP VER" "HANDLER"
|
||||
printf "%s\n" "---------------------------------------------------------------------------------------------------------------------------------"
|
||||
|
||||
for DOMAIN in $DOMAINS; do
|
||||
# Ignorar carpetas del sistema
|
||||
if [[ "$DOMAIN" == "system" || "$DOMAIN" == "chroot" || "$DOMAIN" == "default" ]]; then continue; fi
|
||||
|
||||
# 1. BUSCAR PHP.INI
|
||||
if [ -f "/var/www/vhosts/system/$DOMAIN/etc/php.ini" ]; then
|
||||
PHP_CONFIG="/var/www/vhosts/system/$DOMAIN/etc/php.ini"
|
||||
elif [ -f "/var/www/vhosts/$DOMAIN/etc/php.ini" ]; then
|
||||
PHP_CONFIG="/var/www/vhosts/$DOMAIN/etc/php.ini"
|
||||
else
|
||||
PHP_CONFIG=""
|
||||
fi
|
||||
|
||||
# 2. OBTENER VERSIÓN DE PHP Y HANDLER (Vía Plesk DB)
|
||||
if command -v plesk &> /dev/null; then
|
||||
HANDLER_RAW=$(plesk db "select h.php_handler_id from domains d join hosting h on h.dom_id=d.id WHERE d.name='$DOMAIN'" -N 2>/dev/null | grep -v "^\+" | sed 's/|//g' | xargs)
|
||||
|
||||
# Extraemos solo los números para la lógica de colores
|
||||
PHP_RAW_VER=$(echo "$HANDLER_RAW" | grep -o "[0-9]*" | head -1)
|
||||
|
||||
if [ -z "$PHP_RAW_VER" ]; then
|
||||
PHP_DISPLAY="?"
|
||||
PHP_RAW_VER=0
|
||||
else
|
||||
# Formatear 74 -> 7.4, 81 -> 8.1
|
||||
if [ ${#PHP_RAW_VER} -ge 2 ]; then
|
||||
PHP_DISPLAY="${PHP_RAW_VER:0:1}.${PHP_RAW_VER:1:1}"
|
||||
else
|
||||
PHP_DISPLAY="$PHP_RAW_VER"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
PHP_DISPLAY="No CLI"
|
||||
HANDLER_RAW="-"
|
||||
PHP_RAW_VER=0
|
||||
fi
|
||||
|
||||
# 3. LEER DATOS
|
||||
if [ ! -z "$PHP_CONFIG" ]; then
|
||||
MEMORY_LIMIT=$(grep -i "^memory_limit" "$PHP_CONFIG" | cut -d= -f2 | tr -d '[:space:]')
|
||||
|
||||
UPLOAD_MAX=$(grep -i "^upload_max_filesize" "$PHP_CONFIG" | cut -d= -f2 | tr -d '[:space:]')
|
||||
UPLOAD_NUM=${UPLOAD_MAX//[!0-9]/}
|
||||
|
||||
POST_MAX=$(grep -i "^post_max_size" "$PHP_CONFIG" | cut -d= -f2 | tr -d '[:space:]')
|
||||
POST_NUM=${POST_MAX//[!0-9]/}
|
||||
|
||||
MAX_EXEC=$(grep -i "^max_execution_time" "$PHP_CONFIG" | cut -d= -f2 | tr -d '[:space:]')
|
||||
else
|
||||
MEMORY_LIMIT="No ini"
|
||||
UPLOAD_MAX="0"; UPLOAD_NUM=0
|
||||
POST_MAX="0"; POST_NUM=0
|
||||
MAX_EXEC="0"
|
||||
fi
|
||||
|
||||
# 4. OBTENER PROCESOS DEL ARRAY
|
||||
PROC_COUNT=${PROCESS_MAP["$DOMAIN"]}
|
||||
if [ -z "$PROC_COUNT" ]; then PROC_COUNT=0; fi
|
||||
|
||||
# --- LÓGICA DE COLORES ---
|
||||
|
||||
# A) Procesos
|
||||
COLOR_PROC=$NC
|
||||
if [ "$PROC_COUNT" -gt "$PROCESS_LIMIT" ]; then COLOR_PROC=$RED; fi
|
||||
|
||||
# B) RAM
|
||||
COLOR_RAM=$NC
|
||||
if [[ "$MEMORY_LIMIT" != "No ini" ]]; then
|
||||
if [[ "$MEMORY_LIMIT" == *"-1"* ]]; then
|
||||
COLOR_RAM=$GREEN
|
||||
else
|
||||
RAM_VAL=$(echo "$MEMORY_LIMIT" | sed 's/[^0-9]*//g')
|
||||
if [[ "$MEMORY_LIMIT" == *"G"* ]]; then RAM_VAL=$((RAM_VAL * 1024)); fi
|
||||
if [ "$RAM_VAL" -gt "$RAM_HIGH" ] 2>/dev/null; then COLOR_RAM=$RED; fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# C) Upload y Time
|
||||
COLOR_UPLOAD=$NC
|
||||
if [ "$UPLOAD_NUM" -gt "$DEFAULT_UPLOAD" ] && [ "$UPLOAD_MAX" != "-" ]; then COLOR_UPLOAD=$BLUE; fi
|
||||
|
||||
COLOR_POST=$NC
|
||||
if [ "$POST_NUM" -gt "$DEFAULT_POST" ] && [ "$POST_MAX" != "-" ]; then COLOR_POST=$BLUE; fi
|
||||
|
||||
COLOR_TIME=$NC
|
||||
if [ "$MAX_EXEC" -gt "$DEFAULT_TIME" ] && [ "$MAX_EXEC" != "-" ]; then COLOR_TIME=$BLUE; fi
|
||||
|
||||
# D) PHP Version (Rojo si es 7.4 o inferior)
|
||||
COLOR_PHP=$GREEN
|
||||
if [ "$PHP_RAW_VER" -ne 0 ] && [ "$PHP_RAW_VER" -le 74 ] 2>/dev/null; then
|
||||
COLOR_PHP=$RED
|
||||
fi
|
||||
|
||||
# --- IMPRIMIR ---
|
||||
# Se añade HANDLER_RAW al final
|
||||
printf "%-30s ${COLOR_PROC}%-8s${NC} ${COLOR_RAM}%-12s${NC} ${COLOR_UPLOAD}%-12s${NC} ${COLOR_POST}%-12s${NC} ${COLOR_TIME}%-10s${NC} ${COLOR_PHP}%-10s${NC} %-20s\n" \
|
||||
"${DOMAIN:0:29}" "$PROC_COUNT" "$MEMORY_LIMIT" "$UPLOAD_MAX" "$POST_MAX" "$MAX_EXEC" "$PHP_DISPLAY" "$HANDLER_RAW"
|
||||
|
||||
done
|
||||
Reference in New Issue
Block a user