Можно ли установить часы в режиме пикового и непикового времени в vnstat для мониторинга полосы пропускания?

Вам нужно удалить пакет epiphany-browser. И если вы установили какие-либо дополнительные пакеты:

sudo apt-get remove epiphany-browser epiphany-browser-data epiphany-browser-data epiphany-extensions
1
задан 7 April 2014 в 16:49

1 ответ

Надеюсь, это немного поможет.

Итак, я собираюсь дать вам программу, которую я написал, потому что у меня были проблемы с работой cron. К сожалению, я не знаю сценариев оболочки, так что это в python, но это сработало для меня, и это довольно просто, но приятно. Извините, я не комментировал свой код, но я действительно не хотел возвращаться к нему. Я знаю, что некоторые части могут быть не самыми лучшими, но он работает.

def main():    
    while True:
        import time
        import os
        from subprocess import call
        schedule=tim3()
        print(schedule)
        interface=" "
        while interface==" ":

            interface=input("""
Enter your interface:
(Be careful there is no error checking for this part)
Examples are eth0, wlan0...
""")
            if interface == "":
                break

        while True:
            x= clogger(schedule[2],schedule[3],schedule[4],\
                   schedule[5],interface)

            if x== "done":
                break
        while True:
            x= exit_q()
            if x== "y":
                user_exit=input('''
How would you like your output?
Type (From vnstat --longhelp):
     q,  --query          query database
     h,  --hours          show hours
     d,  --days           show days
     m,  --months         show months
     w,  --weeks          show weeks
     t,  --top10          show top10
     s,  --short          use short output
''')
                call(["vnstat", "-"+str(user_exit), "-i", str(interface),])
            break
        break



def tim3():
    import time

    #current_time=["16", "20"]
    tim3= time.strftime("%H %M")
    current_time=tim3.split()
    print("""


        """+ str(tim3)+"""
        Current time
        """)
    hour=current_time[0]
    minute=current_time[1]
    ui = inputs()
    newlist=[hour, minute]
    schedule=newlist+ui
    print(schedule)
    return schedule
def inputs():
    print("""
------------------------------------------
""")
    while True:
        start_hour=(input("Enter the starting hour (24hr): "))
        start_min=(input("Enter the starting minute: "))
        x = checker(start_hour, start_min)
        endh=(input("How many hours would you like to run? "))
        endm=(input("How many minutes would you like to run? "))
        y = checker(endh,endm)
        if str(x)=="Great":
            if str(y) == "Great":
                return [start_hour, start_min, endh, endm]

def checker(h,m):
    error=0
    message=("Incorrect Format")
    while error==0:
        if h =="":
            print(message)
            break
        if len(str(h))> 2:
            print(message)
            break
        if m =="":
            print(message)
            break
        if len(str(m))>2:
            print(message)
            break
        for x in str(h):
            if x.isdigit() == False:
                error+=1
                print(message)
                break
            if error>0:     
                print(message)
                break
        for y in str(m):
            if y.isdigit() == False:
                error+=1
                print(message)
                break
            if error>0:     
                print(message)
                break
        else:
            return("Great")

def clogger(s1,s2,t1,t2,I):
    import time
    import os
    from subprocess import call
    total_time=int(t1)*60*60+int(t2)*60


    while True:
        h1=int(time.strftime('%H'))
        m2=int(time.strftime('%M'))
        if len(str(s1))<2:
            s1="0"+str(s1)

        if len(str(s2))<2:
            s2="0"+str(s2)

        if len(str(h1))<2:
            h1="0"+str(h1)

        if str(h1)==str(s1) and str(m2)==str(s2):
            while True:
                if total_time>0:

                    call (["vnstat", "-i",str(I)])
                    time.sleep(15)
                    total_time=total_time-15
                    print(total_time," seconds")

                elif total_time<=0:
                    return "done"

        time.sleep(15)




def exit_q():

    while True:
        question=input("Would you like to show a report? (y/n) ")
        if question == "y" or question == "n":
            return question



main()              

Краткое руководство

Откройте Idle, скопируйте> вставить. Сохранить как filename.py. Открытый терминал. Запустите его с Python 3 (python3 filename.py`). Поместите время, которое вы хотите запланировать для запуска vnstat. Положите минутку, которую вы хотите того часа. Поместите количество часов, за которые вы хотите отслеживать. Укажите количество минут, на которое вы хотите отслеживать.

Введите устройство, которое вы контролируете (я не прошел проверку и проверку ошибок, поэтому, если вы введете что-то вроде monkeybutt, оно попытается запустить vnstat -i monkeybutt каждые 15 секунд, просто Ctrl + C out ).

Программа будет проходить каждые 15 секунд, чтобы узнать, совпадает ли время, она не будет давать никаких сообщений. Он предназначен для запуска в фоновом режиме. Как только он начнется, он будет делать снимок каждые 15 секунд сети, на выбранном вами устройстве. Используя команду vnstat плюс счетчик, указав, сколько секунд у вас осталось от мониторинга.

После завершения сканирования он спросит, хотите ли вы выйти, и дайте вам опцию, если вы хотите показать отчет , иначе вы можете просто выйти.

Старая часть сообщения (может быть полезна для некоторых людей)

Вы можете получить gnome-schedule , затем введите в свою команду, например, vnstat -h, и установите его повторно в течение времени, которое вы пытаетесь контролировать. Возможно, это слишком просто, но, надеюсь, кто-то еще может расшириться дальше.

Дополнительно (Edit): Я не использовал vnstat очень много, поэтому я надеялся, что кто-то сможет расширить эту часть, но с помощью gnome- график, вы можете запланировать выполнение команды в течение определенных частей дня. Таким образом, используя vntstat -tr -l (переключатель трафика, мониторный прямой трафик), будет отображаться трафик во время работы (который вы можете планировать в gnome-schedule, но вам может потребоваться вручную Ctrl + C] out .)

В противном случае я уверен, что вы можете передать это в файл или использовать графическую программу вывода для vnstat, если у вас есть это. Программа графического вывода vnstati -i 'filename' выведет ее в файл png. Если вы хотите, чтобы в последующих командах vnstat --longhel p было больше команд.

(Пример экрана о том, как поместить вещи в gnome-schedule.)

знаете, как получить «снимок» пропускной способности, используя vnstat, или вам нужна дополнительная помощь по этим командам? Я могу попытаться работать с программой больше.

2
ответ дан 24 May 2018 в 10:42
  • 1
    Почему это нужно, чтобы спросить меня все время, связанное с этим ... Я хочу, чтобы он постоянно контролировал использование сети и показывал данные отдельно для часов на пике и внепиковых часов ... Я хотел бы видеть обе данные всякий раз Я хочу. Более того, в этой программе Python есть пара ошибок вложения ... (я попытался бы их очистить, если вы не сделаете это за это время) ... – Aditya 10 April 2014 в 20:20
  • 2
    Да, отступы перепутались на форуме, мне нужно пробежаться по всем вещам и добавлять пробелы, извините за это. Я мог бы просто опубликовать программу py где-то, я думаю. Позвольте мне также заглянуть в базы данных. – No Time 11 April 2014 в 07:52
  • 3
    @Aditya, я посмотрел ваше сообщение об ошибке из сценария totti. Вероятно, вам придется запускать его как sudo / root, поскольку файлы, к которым обращаются или перемещаются, обычно не имеют прав пользователя. Я бы тестировал сценарий totti больше, но я не могу выбрать время (или сделать тест сейчас), чтобы увидеть, дает ли он мне хороший результат. Мне нужно было запустить его около 8 часов, и я действительно не хочу так долго ждать. Я не знаю сценарий оболочки, чтобы исправить это. если бы вы могли изменить его, поэтому не так сложно установить, работает ли это, что было бы круто. (У меня нет репутации, я не могу комментировать другие вещи ppl) – No Time 11 April 2014 в 08:59
  • 4
    @totti может добавить время переменной / пользователя? – No Time 11 April 2014 в 09:00

Другие вопросы по тегам:

Похожие вопросы: