списки Пропуска круты.
Википедия
список пропуска А является вероятностной структурой данных, на основе нескольких параллельных, отсортированных связанных списков, с эффективностью, сопоставимой с деревом двоичного поиска (порядок, регистрируют n среднее время для большинства операций).
Они могут использоваться в качестве альтернативы сбалансированным деревьям (использующий probalistic балансировка, а не строгое осуществление балансировки). Их легко реализовать и быстрее, чем говорят, красно-черное дерево. Я думаю, что они должны быть в каждой пользе программистами toolchest.
, Если Вы хотите получить всестороннее введение в списки пропуска, вот ссылка на видео из Введения MIT в лекцию Алгоритмов по ним.
кроме того, здесь апплет Java, демонстрирующий Списки Пропуска визуально.
У Вас может быть непрерывно рабочий цикл при помощи true
как условие.
while true
do
# Insert commands here
sleep 5 # wait for 5 seconds
done
Однако, если Вы хотите, чтобы он получил TX и RX только однажды в день, или один раз в несколько часов, Вы могли бы хотеть настроить задание крона вместо этого.
Возможно, Вы могли основывать свой цикл на содержании/sys/class/net/каталога?
for iface in /sys/class/net/*
do
grep "${iface##*/}" /proc/net/dev ...
done
, Если необходимо исключить эти lo
интерфейс, Вы могли бы или позволить расширенным шарикам удара (shopt -s extglob
) позволить Вам использовать отрицание, или просто ограничить соответствия eth и wlan именами устройств
for iface in /sys/class/net/!(lo) ...
for iface in /sys/class/net/{eth,wlan}* ...
Создайте файл в/etc/cron.daily, дайте ему полномочия на исполнение:
sudo touch /etc/cron.daily/tx-rx-counter
sudo chmod +x /etc/cron.daily/tx-rx-counter
тогда редактирование это и вставка это:
#!/bin/bash
for iface in $(tail -n+3 /proc/net/dev | cut -d: -f1); do
grep $iface /proc/net/dev | awk '{if ($2) print $2}' | awk -v var="$(date +"%Y-%m-%d %r")" '{print $1"&",var";"}' >> /opt/baran/log/baran_RX_usage_$iface_$(date +"%Y-%m-%d")
grep $iface /proc/net/dev | awk '{if ($10) print $10}' | awk -v var="$(date +"%Y-%m-%d %r")" '{print $1"&",var";"}' >> /opt/baran/log/baran_TX_usage_$iface_$(date +"%Y-%m-%d")
done
Это будет работать ежедневно в 6:25.