devqp
Премиум
Скрипт на bash для мониторинга исходящего сетевого трафика с автоматическим отключением интернета при превышении порога.
Параметры:
- Порог данных: 1 ГБ
- Время мониторинга: 10 минут
- Время отключения: 1 минута
Принцип работы:
1. Запуск tcpdump для записи трафика в файл.
2. По истечении времени мониторинга скрипт останавливает tcpdump и анализирует собранные данные.
3. Если объем переданных данных превышает порог, выводится предупреждение и интернет отключается на заданное время.
4. После паузы соединение восстанавливается.
Скрипт:
Особенности:
- Автоматическая очистка временных файлов
- Форматированный вывод объема данных в ГБ
- Использование nmcli для управления сетевым соединением
Требования: Права root, установленные tcpdump и nmcli.
Параметры:
- Порог данных: 1 ГБ
- Время мониторинга: 10 минут
- Время отключения: 1 минута
Принцип работы:
1. Запуск tcpdump для записи трафика в файл.
2. По истечении времени мониторинга скрипт останавливает tcpdump и анализирует собранные данные.
3. Если объем переданных данных превышает порог, выводится предупреждение и интернет отключается на заданное время.
4. После паузы соединение восстанавливается.
Скрипт:
Код:
#!/bin/bash
# Определение порога передачи данных
THRESHOLD_BYTES=$((1 * 1024 * 1024 * 1024))
MONITOR_DURATION=600
DISCONNECT_DURATION=60
START_TIME=$(date +%s)
tcpdump -i any -w /tmp/network_traffic.pcap -s 0 "outbound" &
sleep $MONITOR_DURATION
killall tcpdump
TOTAL_BYTES=$(tcpdump -r /tmp/network_traffic.pcap -n -tttt | awk '{sum += $NF} END {print sum}')
if [[ $TOTAL_BYTES -gt $THRESHOLD_BYTES ]]; then
END_TIME=$(date +%s)
DURATION=$((END_TIME - START_TIME))
TOTAL_GB=$(echo "scale=2; $TOTAL_BYTES / 1024 / 1024 / 1024" | bc)
echo "ALERT: More than 1GB of data ($TOTAL_GB GB) has been transferred in $DURATION seconds."
echo "Temporarily disconnecting..."
nmcli networking off
sleep $DISCONNECT_DURATION
echo "Reconnecting..."
nmcli networking on
else
echo "No alert: Traffic below threshold."
fi
rm /tmp/network_traffic.pcap
Особенности:
- Автоматическая очистка временных файлов
- Форматированный вывод объема данных в ГБ
- Использование nmcli для управления сетевым соединением
Требования: Права root, установленные tcpdump и nmcli.