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