#!/bin/bash # cpdAlerts 2025 # David Mendaña # Fanta # Vigilancia del boletines oficiales de diferentes comunidades # Dependencias: apt install poppler-utils wget bsd-mailx sendmail # Nombres de los Boletines Autonómicos # # Boletín Oficial de la Junta de Andalucía (BOJA) # Boletín Oficial de Aragón (BOA) # Boletín Oficial del Principado de Asturias (BOPA) # Boletín Oficial de Islas Baleares (BOCAIB) # Boletín Oficial de Canarias (BOC) # Boletín Oficial de Cantabria (BOC) # Boletín Oficial de la Junta de Castilla y León (B.O.C. y L.) # Diari Oficial de la Generalitat de Catalunya (DOGC) # Diario Oficial de Extremadura (D.O.E.) # Diario Oficial de Galicia (DOG) # Boletín Oficial de La Rioja (B.O.R.) # Boletín Oficial de la Comunidad de Madrid (BOCM) # Boletín Oficial de la Región de Murcia (BORM) # Boletín Oficial de Navarra (B.O.N.) # Boletín Oficial del País Vasco (BOPV) # Diari Oficial de la Generalitat Valenciana (DOGV) # Boletín Oficial de la Ciudad Autónoma de Ceuta (B.O.C.CE.) # Boletín Oficial de la Ciudad Autónoma de Melilla (BOCME) # Boletín Oficial de Castilla-La Mancha (DOCM) opt="$1" version="0.1" notificationEmails="email@example.es email2@anotherexample.es" # permite lista de varios separados por espacio keyWords="centro de datos|centos de datos|centro de procesamiento de datos|centros de procesamiento de datos|centro de almacenamiento de datos|centros de almacenamiento de datos|aws|amazon aws|cpd|alcance regional" function sendMail() { echo "[+] Resultados encontrados en $2 - $1" echo "He encontrado resultados en $1" | mailx -r alertascpds@56k.es -s "Alertas CPDs - Resultados en $2" $notificationEmails } function aragon { echo "nada aún realizado. Aquí código para buscar en barcelona" comunidad="Aragon" pdfFile=".boletin$comunidad.pdf" } function barcelona { echo "nada aún realizado. Aquí código para buscar en barcelona" comunidad="Barcelona" pdfFile=".boletin$comunidad.pdf" } function clamancha { comunidad="CastillaLaMancha" pdfFile=".boletin$comunidad.pdf" mainURL="https://docm.jccm.es/docm" pdfURL="$(echo $mainURL/$(wget -q $mainURL -O - | grep -i -A1 "descargaDiario" | grep -iE "pdf|rutaDocm|ruta" | awk '{ print $2 }' | cut -d "\"" -f 2 | cut -d "&" -f 1)&tipo=rutaDocm)" wget -q --no-directories --content-disposition -e robots=off -A.pdf "$pdfURL&tipo=rutaDocm" -O $pdfFile if [ "$(pdftotext $pdfFile - | grep -i -E -n -3 "$keyWords" | tee .cpds | wc -l)" = 0 ]; then echo "0 restultados"; rm -rf .cpds .boletin*; exit; else sendMail $pdfURL $comunidad;fi rm -rf .cpds .boletin* } function madrid { comunidad="Madrid" pdfFile=".boletin$comunidad.pdf" mainURL="https://bocm.es" pdfURL=$(wget -q $mainURL -O - | grep -i "Descargar el boletín completo" | awk '{ print $12 }' | cut -d "\"" -f 2) wget -q $pdfURL -O $pdfFile if [ "$(pdftotext $pdfFile - | grep -i -E -n -3 "$keyWords" | tee .cpds | wc -l)" = 0 ]; then echo "0 restultados"; rm -rf .cpds .boletin*; exit; else sendMail $pdfURL $comunidad;fi rm -rf .cpds .boletin* } function help { echo -e "cpdAlerts $version\n" echo "--aragon Alertas en Aragon" echo "--barcelona Alertas en Barcelona" echo "--clamancha Alertas en Castilla-La Mancha" echo "--madrid Alertas en Madrid" echo -e "--help Muesta la ayuda\n" } function checkOpt { if [ -z "$opt" ]; then help; fi if [ "$opt" = "--help" ]; then help; fi if [ "$opt" = "--aragon" ]; then aragon; fi if [ "$opt" = "--barcelona" ]; then barcelona; fi if [ "$opt" = "--clamancha" ]; then clamancha; fi if [ "$opt" = "--madrid" ]; then madrid; fi } function main() { checkOpt } main