mirror of
https://github.com/kennethreitz/python-guide.git
synced 2026-06-05 14:50:19 +00:00
Merge branch 'master' into patch-1
This commit is contained in:
+19
-21
@@ -155,44 +155,42 @@ tests (net, CPU) fail, it will send an email.
|
||||
# Package for email services:
|
||||
import smtplib
|
||||
import string
|
||||
MAX_NET_USAGE = 400000
|
||||
MAX_NET_USAGE = 400000 # bytes per seconds
|
||||
MAX_ATTACKS = 4
|
||||
attack = 0
|
||||
counter = 0
|
||||
while attack <= MAX_ATTACKS:
|
||||
sleep(4)
|
||||
counter = counter + 1
|
||||
# Check the cpu usage
|
||||
if cpu_percent(interval = 1) > 70:
|
||||
attack = attack + 1
|
||||
# Check the net usage
|
||||
neti1 = net_io_counters()[1]
|
||||
neto1 = net_io_counters()[0]
|
||||
|
||||
# Check the net usage wit named tuples
|
||||
neti1 = net_io_counters().bytes_recv
|
||||
neto1 = net_io_counters().bytes_sent
|
||||
sleep(1)
|
||||
neti2 = net_io_counters()[1]
|
||||
neto2 = net_io_counters()[0]
|
||||
neti2 = net_io_counters().bytes_recv
|
||||
neto2 = net_io_counters().bytes_sent
|
||||
|
||||
# Calculate the bytes per second
|
||||
net = ((neti2+neto2) - (neti1+neto1))/2
|
||||
if net > MAX_NET_USAGE:
|
||||
attack = attack + 1
|
||||
if counter > 25:
|
||||
attack = 0
|
||||
counter = 0
|
||||
|
||||
# Check the net and cpu usage
|
||||
if (net > MAX_NET_USAGE) or (cpu_percent(interval = 1) > 70):
|
||||
attack+=1
|
||||
elif attack > 1:
|
||||
attack-=1
|
||||
|
||||
# Write a very important email if attack is higher than 4
|
||||
TO = "you@your_email.com"
|
||||
FROM = "webmaster@your_domain.com"
|
||||
SUBJECT = "Your domain is out of system resources!"
|
||||
text = "Go and fix your server!"
|
||||
BODY = string.join(("From: %s" %FROM,"To: %s" %TO,"Subject: %s" %SUBJECT, "",text), "\r\n")
|
||||
string="\r\n"
|
||||
BODY = string.join(("From: %s" %FROM,"To: %s" %TO,
|
||||
"Subject: %s" %SUBJECT, "",text))
|
||||
server = smtplib.SMTP('127.0.0.1')
|
||||
server.sendmail(FROM, [TO], BODY)
|
||||
server.quit()
|
||||
|
||||
|
||||
A full terminal application like a widely extended top which is based on
|
||||
psutil and with the ability of a client-server monitoring is
|
||||
`glance <https://github.com/nicolargo/glances/>`_.
|
||||
|
||||
A full terminal application like a widely extended top is `Glance <https://github.com/nicolargo/glances/>`_, which is based on psutil and has the ability for client-server monitoring.
|
||||
|
||||
*******
|
||||
Ansible
|
||||
|
||||
Reference in New Issue
Block a user