¿Cómo verificar cuentas suspendidas en un servidor cPanel y removerlas después de un período de tiempo específico?
Muchas veces suspendemos una cuenta en nuestros servidores cPanel y pasa desapercibida durante meses, desperdiciando y al mismo tiempo consumiendo espacio de disco de tu servidor.
En otras palabras podríamos aprovechar estos recursos para otras cuentas de cPanel, y al mismo tiempo tener limpio nuestro servidor, evitando de esta manera que nuestro servidor se llene de cuentas basura.
Entonces puedes usar el siguiente script y programarlo para que se ejecute, digamos una vez al día, lo que eliminará las cuentas suspendidas del servidor.
Para esto, , su función es buscar las cuentas que estén suspendidas por más de 30 días y las elimina completamente con la ayuda de las funciones oficiales de función que proporciona cPanel para remover cuentas.
Entonces lo primero es crear un archivo en nuestro servidor:
Bash:
nano /root/terminate_accounts.sh
Luego pegamos el siguiente código y guardamos:
Bash:
#!/bin/sh
echo "
#================================================================#
⠀⠀⠀⠀⠀⠀⠀⠠⠤⠒⠒⠒⠒⠒⠤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⡲⢋⠝⠋⣛⣳⡄⠀⠀⠀⠀⠀⠀⠉⠓⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢀⠠⣴⠗⢀⠥⠂⢁⠤⠤⠤⠁⠀⠀⠀⠀⠀⠀⠀⠀⣛⠛⠉⠗⠒⠲⢤⣀⠀
⠰⠃⠐⠀⠋⡠⠀⠮⠤⠤⠤⠤⡤⡄⠀⠀⠀⠀⠀⠀⢠⣽⠄⠀⠀⠀⠀⠀⢸⡆
⠀⠜⠀⠀⠈⠀⢠⣤⣔⣒⡒⠒⠂⠁⠀⡀⢀⣀⣤⣶⣿⡟⠀⠀⠀⠀⠀⢀⡼⠀
⠈⠀⠀⠀⠀⣰⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠟⠉⠁⠀⠀⠀⢄⡴⠋⠀⠀
⠀⠀⠀⠀⣰⠋⠀⠀⠀⠈⠙⠛⠛⠛⠛⠋⠉⠀⠀⠀⠀⢀⣠⣴⡊⠁⠀⠀⠀⠀
⠀⡠⠐⠉⢸⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⣤⣶⣿⣿⣿⡻⡄⠀⠀⠀⠀
⠀⠁⠀⠀⣿⢹⣿⣿⣿⣶⣦⣶⣶⣶⣶⣶⣙⠋⠴⠛⣿⢛⡿⠬⠃⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠈⠘⠹⣿⣿⠛⠛⠛⢿⡇⠀⠉⠀⠘⠉⢰⣯⡊⠙⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⠱⡄⠀⠀⠘⠃⠀⠀⠀⠀⠠⠛⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⢲⣄⠀⠒⠂⠀⣀⢴⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣀⣀⣀⣀⣈⠀⢻⣿⣶⣴⣾⡟⢸⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀
⠀⠀⠀⢀⡎⠀⢀⣠⡤⠂⢠⠈⢿⣿⡿⣿⠃⠀⠙⣀⣀⣀⡀⠀⠙⣄⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢠⠉⠉⢇⠀⠈⡇⠘⣏⠀⡿⡰⠀⠀⢀⠛⠛⠻⣆⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢸⠉⠉⠉⠗⠒⢿⡀⠸⡈⣠⠧⠞⠉⡏⠉⠉⠉⢹⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠸⠀⠀⠀⠀⠀⠀⠁⠀⠉⠉⠀⠀⠈⠀⠀⠀⠀⠸⠀
#=================================================================#
Auto Terminate cPanel Accounts
#=================================================================#
# Script to terminate cpanel accounts more than 30 days suspended #
#=================================================================#
"
# Buscar cuentas y asignarlas a la variable i
for i in `find /var/cpanel/suspended/ -mtime +30 |\
cut -d'/' -f5 | sed '1 d'`
do
/scripts/removeacct $i --force;
# Finalizar y continuar con la siguiente hasta que ya no exista ninguna
done;
Debemos dar permisos de ejecución al archivo:
Bash:
chmod +x /root/terminate_accounts.sh
Ahora configura un cronjob para ejecutar el archivo una vez al día. Para ello edita el archivo cronjob raíz:
Bash:
crontab -e
Pegamos, guardamos y salimos:
Bash:
0 1 * * * /bin/sh /root/terminate_accounts.sh
Y con esto finalizamos, ahora su script se ejecutará una vez al día para buscar cuentas que se encuentren suspendidas por más de 30 días.
Tener en cuenta que lo he probado solo en CentOS 7 y 8, debería servir correctamente para toda la rama de sistemas operativos Red Hat.
Espero que les sirva, Cordiales abrazos
Última edición: