Я недавно загрузил, vnstat
чтобы контролировать мое использование пропускной способности Интернета. У меня ограниченный тариф на передачу данных, но мой интернет-провайдер обеспечивает неограниченную пропускную способность в непиковые часы (с 2:00 до 8:00). Итак, я хотел бы, чтобы vnstat сообщал об использовании данных, классифицируя пиковое использование и непиковое использование отдельно.
Я прошел, man vnstat
но не мог найти никакой помощи в этом отношении. Можно ли получить две разные статистические данные за часы пиковой и непиковой нагрузки vnstat
? Если нет, какие альтернативы мне доступны для достижения того же?
command-line
bandwidth
vnstat
Адитья
источник
источник
Ответы:
AFAIK нет инструмента контроля пропускной способности лучше, чем
vnstat
. К сожалению, он не поддерживает эту функцию. Но вы можете достичь этого, используя несколько баз данных дляvnstat
.Сохраняйте данные в часы пик в
vnstat1
и в часы пикvnstat2
. Создайте сценарий демона, который будет переключать их в зависимости от времени суток, используяif
условие в бесконечном цикле; если нет между 02-08 часами, используйтеvnstat1
иначе, отключитеvnstat1
, включитеvnstat2
иsleep
.Я написал следующий скрипт bash. Сохраните его в файл и сделайте его исполняемым с помощью
sudo chmod x <filename>
. Проверьте это в течение некоторого времени. Наконец, заставьте скрипт автоматически запускаться с ОС. Запустите его какroot
пользователь. (Просто добавьте путь к скрипту,/etc/rc.local
чтобы он выполнялся во время загрузки).Перейдите
i=eth0
на 5-й строке к сетевому интерфейсу, который вы хотите отслеживать.Чтобы узнать использование запустить
cat /tmp/onpeak
иcat /tmp/offpeak
соответственно.Также рекомендуется сбросить данные в базе данных по умолчанию (
/var/lib/vnstat
), поскольку она никогда не будет обновляться, если все в сценарии выполнено правильно.источник
Надеюсь, это немного поможет.
Поэтому я собираюсь дать вам программу, которую я написал, потому что у меня были проблемы с работой cron. К сожалению, я не знаю сценариев оболочки, так что это на python, но это сработало для меня, и это довольно просто, но приятно. Извините, я не прокомментировал свой код, но я действительно не хотел возвращаться к нему. Я знаю, что некоторые части не могут быть лучшими, но это работает.
Краткое руководство
Откройте в режиме ожидания, скопируйте> вставить.
Сохранить как
filename.py
.Откройте Терминал.
Запустите его с Python 3 (python3 filename.py`).
Введите время, которое вы хотите запланировать для запуска vnstat.
Введите минуты, которые вы хотите этого часа.
Укажите количество часов, которое вы хотите отслеживать.
Укажите количество минут, которое вы хотите отслеживать.
Введите устройство, которое вы отслеживаете (я не прошел и проверку ошибок, поэтому, если вы введете что-то вроде monkeybutt, оно будет пытаться запускаться
vnstat -i monkeybutt
каждые 15 секунд, просто Ctrl+ Cout).Программа будет запускаться каждые 15 секунд, чтобы увидеть, совпадает ли время, и не будет выдавать никаких сообщений. Он предназначен для запуска в фоновом режиме. Как только он запустится, он будет снимать каждые 15 секунд сети на выбранном вами устройстве. Используя команду vnstat, а также счетчик, показывающий, сколько секунд у вас осталось на мониторинг.
После завершения сканирования он спросит, хотите ли вы выйти, и даст вам возможность, если вы хотите показать отчет, в противном случае вы можете просто выйти. В любом случае, все это хранится в базе данных vnstats.
Старая часть поста (может быть полезна для некоторых людей)
Вы можете получить gnome-schedule, затем добавить в свою команду, например, vnstat -h, и установить его повторяющимся во время попыток мониторинга. Может быть, слишком просто, но, надеюсь, кто-то еще может расширяться.
Дополнительно (Правка): я не очень часто использовал vnstat, поэтому я надеялся, что кто-то сможет расширить эту часть, но с помощью gnome-schedule вы можете запланировать выполнение команды в определенные части дня. Поэтому использование vntstat -tr -l (переключатель трафика, мониторинг трафика в реальном времени) покажет трафик во время работы (который вы можете запланировать в gnome-schedule, но вам, возможно, придется вручную Ctrl+ C] выйти.)
В противном случае я уверен, что вы могли бы передать это в файл или использовать программу графического вывода для vnstat, если у вас есть это. Программа графического вывода
vnstati -i 'filename'
выведет ее в файл png. Если вам нужны дополнительные команды,vnstat --longhel
p имеет больше команд.(Пример экрана, как поместить вещи в гном-расписание.)
Знаете ли вы, как получить «снимок» полосы пропускания с помощью vnstat, или вам нужна дополнительная помощь по этим командам? Я могу попытаться работать с программой больше.
источник