81 lines
4.6 KiB
Python
81 lines
4.6 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
###########################
|
|
# Author: Rubenb #
|
|
# Fecha: 04/01/2024 #
|
|
###########################
|
|
|
|
import subprocess
|
|
import os
|
|
import sys
|
|
from datetime import datetime
|
|
|
|
def verificar_backup():
|
|
# Lista de nombres de archivos específicos
|
|
nombres_archivos = ["sw19", "sw20", "sw21", "hol-sw1"]
|
|
# Variable fecha actual
|
|
fecha_actual = datetime.now().strftime('%Y%m%d')
|
|
# Variable directorio backups
|
|
directorio_backup = "/srv/tftp/backup"
|
|
|
|
# archivos que deberian existir running config
|
|
archivos_deberian_existir_running_config = [nombre + '-running-config-' + fecha_actual for nombre in nombres_archivos if nombre + '-running-config-' + fecha_actual ]
|
|
|
|
# archivos que deberian existir boot
|
|
archivos_deberian_existir_boot = [nombre + '-boot-' + fecha_actual for nombre in nombres_archivos if nombre + '-boot-' + fecha_actual ]
|
|
|
|
# lista concatenada archivos_deberian_existir running_config + boot
|
|
lista_concatenada_archivos_deberian_existir = archivos_deberian_existir_running_config + archivos_deberian_existir_boot
|
|
|
|
# debug deberian existir running config
|
|
#print("archivosQueDeberianExistir _running_config:", archivos_deberian_existir_running_config) # debug
|
|
# debug deberian existir boot
|
|
#print("archivosQueDeberianExistir _boot:", archivos_deberian_existir_boot) # debug
|
|
# debug lista concatenada archivos_deberian_existir running_config + boot
|
|
#print("archivos_deberian_existir running_config + boot:", lista_concatenada_archivos_deberian_existir) # debug
|
|
|
|
# archivos encontrados / existentes _running_config
|
|
archivos_encontrados_running_config = [nombre + '-running-config-' + fecha_actual for nombre in nombres_archivos if nombre + '-running-config-' + fecha_actual in os.listdir(directorio_backup)]
|
|
|
|
# archivos encontrados / existentes _boot
|
|
archivos_encontrados_boot = [nombre + '-boot-' + fecha_actual for nombre in nombres_archivos if nombre + '-boot-' + fecha_actual in os.listdir(directorio_backup)]
|
|
|
|
# lista concatenada archivos encontrados / existentes running_config + boot
|
|
lista_concatenada_archivos_encontrados = archivos_encontrados_running_config + archivos_encontrados_boot
|
|
|
|
# debug archivos encontrados / existentes _running_config
|
|
#print("archivosEncontrados:", archivos_encontrados_running_config) # debug
|
|
# debug archivos encontrados / existentes _boot
|
|
#print("archivosEncontrados:", archivos_encontrados_boot) # debug
|
|
# debug lista concatenada archivos encontrados / existentes running_config + boot
|
|
#print("archivosEncontrados running_config + boot:", lista_concatenada_archivos_encontrados) # debug
|
|
|
|
# archivos no encontrados / no existentes _running_config
|
|
archivos_no_encontrados_running_config = [nombre + '-running-config-' + fecha_actual for nombre in nombres_archivos if nombre + '-running-config-' + fecha_actual not in os.listdir(directorio_backup)]
|
|
|
|
# archivos no encontrados / no existentes _boot
|
|
archivos_no_encontrados_boot = [nombre + '-boot-' + fecha_actual for nombre in nombres_archivos if nombre + '-boot-' + fecha_actual not in os.listdir(directorio_backup)]
|
|
|
|
# lista concatenada archivos encontrados / existentes running_config + boot
|
|
lista_concatenada_archivos_no_encontrados = archivos_no_encontrados_running_config + archivos_no_encontrados_boot
|
|
|
|
# debug archivos no encontrados / no existentes _running_config
|
|
#print("archivosNoEncontrados_running_config:", archivos_no_encontrados_running_config) # debug
|
|
# debug archivos no encontrados / no existentes _boot
|
|
#print("archivosNoEncontrados_boot:", archivos_no_encontrados_boot) # debug
|
|
# debug lista concatenada archivos no encontrados / no existentes running_config + boot
|
|
#print("archivosNoEncontrados running_config + boot:", lista_concatenada_archivos_no_encontrados) # debug
|
|
|
|
# lógica para verificar la existencia de archivos específicos para la fecha de hoy
|
|
if lista_concatenada_archivos_deberian_existir != lista_concatenada_archivos_encontrados:
|
|
mensaje = f"No se encontraron archivos de backup para la fecha {fecha_actual} o falta alguno , archivos encontrados {lista_concatenada_archivos_encontrados} , archivos que deberian existir {lista_concatenada_archivos_deberian_existir} , Archivos no encontrados: {lista_concatenada_archivos_no_encontrados} , Revisar backups en /srv/tftp/backup ."
|
|
print("CRITICAL:", mensaje)
|
|
sys.exit(2) # Critical
|
|
else:
|
|
mensaje = f"Archivos de backup encontrados {', '.join(lista_concatenada_archivos_encontrados)} ."
|
|
print("OK:", mensaje)
|
|
sys.exit(0) # OK
|
|
|
|
verificar_backup()
|