Script – Tarea cron que reinicia el sistema y envía un mail

Tarea cron que reinicia el sistema y envía un informe por correo electrónico.

Hoy creamos un script bash, con el que mediante una tarea cron reiniciaremos el sistema a una hora predeterminada por nosotros.

Ademas nos enviara un mail con la hora de reinicio, una pequeña info de nuestra maquina, y un listado de las aplicaciones que iniciaran con el sistema (ordenadas alfabéticamente).

Vamos a verlo…

Script - Tarea cron que reinicia el sistema y envía un mail 1

 

Script bash que reinicia el sistema

Creamos un *.sh.

nano reboot.sh

Copia y pega el siguiente código.
#!/bin/bash

# Define la ruta de binarios
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Uptime
up=("$(uptime -p | awk '{$1=""; sub("  ", " "); print}')")

# Host
host=("$(hostname)")

# IPs del sistema
meu_ip=("$(ifconfig | awk '/inet addr/{print substr($2,6)}' | awk 'NR==1{print $1}')")

# Data/hora
data=("$(date +"%Y-%m-%d")")
hora=("$(date +"%T")")

# Servicos iniciados en el boot
servicos=("$(ls -1 /etc/rc$(/sbin/runlevel| cut -d" " -f2).d/S* | awk -F'[0-9][0-9]' '{print " Servico :-> " $2}' | sort -k 3)")

### Define parametros de e-mail ###
email="mimail@midominio.com"        # E-mail destino de alerta
assunto=$host": [Alert] Restart ["$meu_ip"]" # Asunto de email

# Envio de email
printf "%b\n" "Sistema [$host] ($meu_ip) reiniciado en $data.\n
Uptime: $up\n
Cargados en el inicio:\n$servicos" | mail -s "$assunto" "$email"

# Espera 10s para que se envíen los mails
sleep 10

# Reinicia el sistema
reboot

Guarda y cierra el editor.

 

Ahora creamos una tarea cron.

crontab -e

Lo creamos de forma que nuestro sistema reinicie todos los días de la semana a las 00:00h.
0 0 * * * ~/rebbot.sh

otra opción

0 0 * * * /reboot.sh >/dev/null 2>&1

OJO!!! debes colocar la ruta correcta.

 

Espero que te sea útil. (Reinicia el sistema)

Agregar comentario