feat: amélioration scripts bash, scan réseau, fix cron, README
- system_prompt: section scripts bash (commandes interdites, mosquitto_pub, bonnes pratiques) - script.py: nettoyage guillemets échappés à la sauvegarde - network.py: nouvelle action scan (nmap/arp-scan/arp fallback), auto-détection subnet - cron.py: _get_current_crontab() évite d'écrire "(aucune sortie)" dans le crontab - README créé Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Executable
+37
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Sous‑réseau à surveiller
|
||||
SUBNET="192.168.7.0/24"
|
||||
|
||||
# Fichier de cache contenant la liste des hôtes vus lors du dernier scan
|
||||
CACHE="/tmp/monitor_disconnect_cache.txt"
|
||||
|
||||
# Fonction de scan : ping‑scan avec nmap, on ne garde que les adresses IP actives
|
||||
scan_hosts() {
|
||||
nmap -sn "$SUBNET" -oG - | awk '/Up/{print $2}'
|
||||
}
|
||||
|
||||
# Première exécution → créer le cache et quitter
|
||||
if [[ ! -f "$CACHE" ]]; then
|
||||
scan_hosts > "$CACHE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Scan actuel
|
||||
CURRENT="$(mktemp)"
|
||||
scan_hosts > "$CURRENT"
|
||||
|
||||
# Déterminer les hôtes qui ont disparu depuis le dernier scan
|
||||
MISSING=$(comm -23 <(sort "$CACHE") <(sort "$CURRENT")) || true
|
||||
|
||||
# Si des hôtes sont manquants, envoyer une alerte XMPP via MQTT (le broker relayera vers Nexus)
|
||||
if [[ -n "$MISSING" ]]; then
|
||||
while IFS= read -r ip; do
|
||||
MSG="ALERTE : machine $ip déconnectée du réseau $SUBNET"
|
||||
mosquitto_pub -h "$MQTT_BROKER" -t "agents/nexus/inbox" -m "$MSG"
|
||||
done <<< "$MISSING"
|
||||
fi
|
||||
|
||||
# Mettre à jour le cache pour le prochain cycle
|
||||
mv "$CURRENT" "$CACHE"
|
||||
Reference in New Issue
Block a user