El código fuente de este script nos puede ser muy útil para realizar la instalación inicial de los servicios básicos de un Servidor. Entre otros, podremos instalar: Apache, PHP, MySQL, SSH, Servicio de correo electrónico, sistema de alertas por email, Webmin, PHPMyadmin, etc. Todo de una manera muy automática y relativamente cómoda.
Revísalo y cambia lo que necesites, podría tener algún bug. Es código directamente generado en clase de 2ºSMR - 2014 IES Oretania.
#!/bin/bash
#Este script sirve para preparar rápidamente un
#servidor con los servicios básicos más comunes.
#Además, es posible instalar webmin a través de
#un script previo que se publicó en este mismo blog.
#Otras funciones añadidas permiten instalar phpmyadmin,
#así como habilitar un servidor básico de correo
#electrónico para que el servidor pueda enviar
#alertas por email a su administrador del sistema.
#----------------------------------------------------
# FUNCIONES
#----------------------------------------------------
function menu()
{
clear
echo "*********** MENU SERVICIOS ***********"
echo "* *"
echo "* 1.- Iniciar asistente instalación *"
echo "* 2.- Instalar Webmin *"
echo "* 3.- Instalar Php MyAdmin *"
echo "* 4.- Alertas por email *"
echo "* 5.- Salir *"
echo "* *"
echo "**************************************"
}
function asistente()
{
which tasksel > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "Inicializando asistente, un momento por favor..."
apt-get install -y tasksel #> /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "Error, no puede ejecutarse Tasksel."
read -p "Pulse una tecla para finalizar."
exit 1
fi
fi
tasksel
#Instalaremos lo que necesitemos a través de esta
#herramienta.
}
function phpmyadmin()
{
which phpmyadmin > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "Instalando phpmyadmin, un momento por favor..."
apt-get install -y phpmyadmin #> /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "Error, no puede ejecutarse phpmyadmin."
read -p "Pulse una tecla para finalizar."
exit 1
fi
fi
#Abrimos phpmyadmin para que el usuario empiece a usarlo
firefox http://localhost/phpmyadmin
}
function webmin()
{
#Llamamos al script de instalación de webmin
./instalawebmin.sh
}
function alertasemail()
{
which ssmtp > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "Instalando ssmtp, un momento por favor..."
apt-get install -y ssmtp #> /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "Error, no puede ejecutarse ssmtp."
read -p "Pulse una tecla para finalizar."
exit 1
fi
fi
read -p "Indica la dirección de destino de las alertas: " email_alertas
if [ -f /etc/ssmtp/ssmtp.conf ]
then
#sacamos copia seguridad
if [ -f /etc/ssmtp/ssmtp_old.conf ]
then
echo "no se sacará copia de ssmtp.conf"
else
cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp_old.conf
read -p "Indica la dirección de email del servidor(sin @gmail.com): " email_servidor
#Solicitamos contraseña de manera oculta
echo "Indica la constraseña de la cuenta: "
read -s clave
fi
#comprobación errores?
#Volcamos aquí toda la configuración a
#los dos archivos de configuración de ssmtp
echo -e "root=$email_servidor@gmail.com \n
mailhub=smtp.gmail.com:587 \n
#rewriteDomain= \n
hostname=$email_servidor \n
AuthUser=$email_servidor@gmail.com \n
AuthPass=$clave \n
FromLineOverride=YES \n
UseSTARTTLS=YES" > /etc/ssmtp/ssmtp.conf
else
echo "Error al intentar configurar ssmtp: ssmtp.conf."
exit 1
fi
if [ -f /etc/ssmtp/revaliases ]
then
#sacamos copia seguridad
if [ -f /etc/ssmtp/revaliases_old ]
then
echo "no se sacará copia de ssmtp.conf"
else
cp /etc/ssmtp/revaliases /etc/ssmtp/revaliases_old
fi
#Modificamos ahora el archivo
echo "root:$email_servidor@gmail.com:smtp.gmail.com:587" >> /etc/ssmtp/revaliases
#el nombre de usuario debe de ser uno con privilegios de
#administrador
echo "alumno:$email_servidor@gmail.com:smtp.gmail.com:587" >> /etc/ssmtp/revaliases
else
echo "Error al intentar configurar ssmtp: revaliases.conf"
exit 1
fi
#Enviamos un email de confirmación
ssmtp $email_alertas < correo.txt
#Donde correo.txt debe tener el formato
#from: origen del mensaje
#subject: asunto del mensaje
#texto del mensaje que se quiere enviar
}
#----------------------------------------------------
# PROGRAMA PRINCIPAL
#----------------------------------------------------
menu
opcion=""
while [ "$opcion" == "" ]
do
read -p "Introduce la opción elegida: " opcion
case $opcion in
1)asistente;read;;
2)echo "Instalando Webmin...";webmin;;
3)echo "Instalando Php MyAdmin";phpmyadmin;;
4)echo "Alertas por email";alertasemail;;
5)echo "Finalizando script";exit 0;;
*)echo "Opción no válida";opcion="";;
esac
menu
opcion=""
done
El correo electrónico que se ha de generar en el archivo correo.txt que se ha de enviar en la función de "alertasemail" tendría la siguiente forma:
from: servidor que envía la alerta
subject: asunto de la alerta
Este es un correo de confirmación de la correcta instalación y configuración del servicio de alertas por correo electrónico.
No hay comentarios:
Publicar un comentario