-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconky_monitor.sh
71 lines (59 loc) · 2.35 KB
/
conky_monitor.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash
# File di log per la diagnostica
LOG_FILE="/home/randolph/Documenti/conky_log.txt"
# Array degli indirizzi IP e relativi file di configurazione di Conky
MACHINES=(
"192.168.178.30:/home/randolph/.config/conky/adsb.conf"
"192.168.178.32:/home/randolph/.config/conky/serverpi.conf"
"192.168.178.32:/home/randolph/.config/conky/serverpi_logs.conf"
"192.168.178.59:/home/randolph/.config/conky/hp_mini.conf"
)
# Stato attuale delle macchine
declare -A MACHINE_STATUS
# Funzione per aggiungere messaggi al file di log
log_message() {
echo "$(date): $1" >> "$LOG_FILE"
}
# Inizia il log
log_message "Script avviato"
# Verifica se la rete è pronta
while ! ping -c 1 -W 1 8.8.8.8 &> /dev/null; do
log_message "In attesa della connessione di rete..."
sleep 5
done
log_message "Rete pronta. Avvio il monitoraggio delle macchine."
# Primo controllo completo
for MACHINE in "${MACHINES[@]}"; do
REMOTE_IP=$(echo "$MACHINE" | cut -d':' -f1)
CONKY_CONFIG=$(echo "$MACHINE" | cut -d':' -f2)
if ping -c 1 -W 1 "$REMOTE_IP" &> /dev/null; then
log_message "Il sistema remoto $REMOTE_IP è online. Avvio Conky con il file di configurazione $CONKY_CONFIG."
conky -c "$CONKY_CONFIG" --daemonize --pause=1 &
MACHINE_STATUS["$REMOTE_IP"]="online"
else
MACHINE_STATUS["$REMOTE_IP"]="offline"
fi
done
# Ciclo principale
while true; do
for MACHINE in "${MACHINES[@]}"; do
REMOTE_IP=$(echo "$MACHINE" | cut -d':' -f1)
CONKY_CONFIG=$(echo "$MACHINE" | cut -d':' -f2)
# Verifica lo stato attuale
if ping -c 1 -W 1 "$REMOTE_IP" &> /dev/null; then
if [[ "${MACHINE_STATUS["$REMOTE_IP"]}" != "online" ]]; then
log_message "Il sistema remoto $REMOTE_IP è tornato online. Avvio Conky con il file di configurazione $CONKY_CONFIG."
conky -c "$CONKY_CONFIG" --daemonize --pause=1 &
MACHINE_STATUS["$REMOTE_IP"]="online"
fi
else
if [[ "${MACHINE_STATUS["$REMOTE_IP"]}" != "offline" ]]; then
log_message "Il sistema remoto $REMOTE_IP è offline. Chiudo Conky associato a $CONKY_CONFIG."
pkill -f "conky.*$CONKY_CONFIG"
MACHINE_STATUS["$REMOTE_IP"]="offline"
fi
fi
done
# Attendi 10 secondi prima di controllare di nuovo
sleep 10
done