monitoring-plugins-vn/check_backup/check_backup_opnsense.py

51 lines
2.0 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 = ["gw1"]
# Variable fecha actual
fecha_actual = datetime.now().strftime('%Y%m%d')
# Variable directorio backups
directorio_backup = "/srv/tftp/backup"
# archivos que deberian existir
archivos_deberian_existir = [nombre + '-config-' + fecha_actual for nombre in nombres_archivos if nombre + '-config-' + fecha_actual]
# debug
#print("archivosQueDeberianExistir:", archivos_deberian_existir) # debug
# archivos encontrados / existentes
archivos_encontrados = [nombre + '-config-' + fecha_actual for nombre in nombres_archivos if nombre + '-config-' + fecha_actual in os.listdir(directorio_backup)]
# debug
#print("archivosEncontrados:", archivos_encontrados) # debug
# archivos no encontrados / no existentes
archivos_no_encontrados = [nombre + '-config-' + fecha_actual for nombre in nombres_archivos if nombre + '-config-' + fecha_actual not in os.listdir(directorio_backup)]
# debug
#print("archivosNoEncontrados:", archivos_no_encontrados) # debug
# lógica para verificar la existencia de archivos específicos para la fecha de hoy
if archivos_deberian_existir != archivos_encontrados:
mensaje = f"No se encontraron archivos de backup para la fecha {fecha_actual} o falta alguno , archivos encontrados {archivos_encontrados} , archivos que deberian existir {archivos_deberian_existir} , Archivos no encontrados: {archivos_no_encontrados} , Revisar backups en /srv/tftp/backup ."
print("CRITICAL:", mensaje)
sys.exit(2) # Critical
else:
mensaje = f"Archivos de backup encontrados {', '.join(archivos_encontrados)} ."
print("OK:", mensaje)
sys.exit(0) # OK
verificar_backup()