उम्मीद है कि यह थोड़ा मदद करता है।
इसलिए मैं आपको एक कार्यक्रम देने जा रहा हूं जो मैंने लिखा था, क्योंकि मुझे क्रॉन के काम करने में समस्या हो रही थी। मुझे नहीं पता कि शेल स्क्रिप्टिंग दुर्भाग्य से इसलिए यह अजगर में है, लेकिन इसने मेरे लिए काम किया, और यह बहुत सरल है, लेकिन अच्छा है। क्षमा करें, मैंने अपना कोड टिप्पणी नहीं किया, लेकिन मैं वास्तव में इसके माध्यम से वापस नहीं जाना चाहता था। मुझे पता है कि कुछ हिस्से सर्वश्रेष्ठ नहीं हो सकते हैं, लेकिन यह काम करता है।
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()
त्वरित गाइड
ओपन आइडल, कॉपी> पेस्ट।
के रूप में सहेजें filename.py
।
टर्मिनल खोलें।
इसे पायथन 3 (python3 filename.py`) के साथ चलाएं।
घंटे आप vnstat को चलाने के लिए शेड्यूल करना चाहते हैं।
उस मिनट में रखें जिसे आप उस घंटे के लिए चाहते हैं।
घंटे की मात्रा आप इसे के लिए निगरानी करना चाहते हैं रखो।
जितने मिनट के लिए आप इसे मॉनिटर करना चाहते हैं उतने मिनट लगाएं।
वह उपकरण दर्ज करें जिसे आप मॉनिटर कर रहे हैं (मैं नहीं गया और त्रुटि की जांच कर रहा हूं, इसलिए यदि आप बंदरबट जैसी किसी चीज को दर्ज करते हैं, तो यह कोशिश करेगा और vnstat -i monkeybutt
हर 15 सेकंड में, बस Ctrl+ Cबाहर चला जाए)।
यह कार्यक्रम प्रत्येक 15 सेकंड में चलेगा, यह देखने के लिए कि क्या समय मेल खाता है, यह कोई संदेश नहीं देगा। यह पृष्ठभूमि में चलाने के लिए है। एक बार शुरू होने के बाद, यह आपके द्वारा चुने गए डिवाइस पर नेटवर्क के हर 15 सेकंड में एक शॉट लेगा। Vnstat कमांड का उपयोग करना, साथ ही एक काउंटर यह कहना कि आपके पास निगरानी के कितने सेकंड बचे हैं।
स्कैन पूरा करने के बाद यह पूछेगा कि क्या आप बाहर निकलना चाहते हैं, और आपको एक विकल्प देना है यदि आप एक रिपोर्ट दिखाना चाहते हैं, अन्यथा आप बस बाहर निकल सकते हैं। सभी सामान vnstats डेटाबेस में वैसे भी संग्रहीत है।
पोस्ट का पुराना हिस्सा (कुछ लोगों के लिए उपयोगी हो सकता है)
आप सूक्ति-शेड्यूल प्राप्त कर सकते हैं, फिर उदाहरण के लिए vnstat -h के लिए अपनी कमांड में रख सकते हैं, और इसे मॉनिटर करने की कोशिश कर रहे समय के दौरान इसे फिर से सेट करें। शायद बहुत आसान है, लेकिन उम्मीद है कि कोई और आगे विस्तार कर सकता है।
अतिरिक्त (संपादन): मैंने vnstat का उपयोग बहुत अधिक नहीं किया है, यही कारण है कि मैं उम्मीद कर रहा था कि कोई उस हिस्से पर विस्तार कर सकता है, लेकिन सूक्ति-शेड्यूल के साथ, आप दिन के विशिष्ट भागों के दौरान निष्पादित करने के लिए एक कमांड शेड्यूल कर सकते हैं। तो vntstat -tr -l (यातायात स्विच, मॉनिटर लाइव ट्रैफ़िक) का उपयोग करते हुए, ट्रैफ़िक को चलाते समय दिखाएगा (जिसे आप सूक्ति-शेड्यूल में शेड्यूल कर सकते हैं, लेकिन आपको मैन्युअल रूप से Ctrl+ C] बाहर करना पड़ सकता है ।)
अन्यथा मुझे यकीन है कि आप इसे एक फ़ाइल में पाइप कर सकते हैं, या यदि आपके पास है तो vnstat के लिए ग्राफिकल आउटपुट प्रोग्राम का उपयोग करें। ग्राफिकल आउटपुट प्रोग्राम vnstati -i 'filename'
इसे पीएनजी फ़ाइल के लिए आउटपुट करेगा। यदि आप चाहते हैं कि आगे कमांड vnstat --longhel
p में और कमांड्स हैं।
(चीजों की नमूना स्क्रीन को सूक्ति-अनुसूची में कैसे रखा जाए।)
क्या आप जानते हैं कि पहले से ही vnstat का उपयोग करके बैंडविड्थ का 'स्नैपशॉट' कैसे प्राप्त किया जा सकता है, या क्या आपको उन आदेशों पर और सहायता की आवश्यकता है? मैं कार्यक्रम के साथ अधिक काम करने की कोशिश कर सकता हूं।