mirror of https://github.com/cppla/ServerStatus
compatible Python2.7-Python3.7
parent
3db1b8a243
commit
ce4def5c87
|
@ -1,9 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# coding: utf-8
|
# coding: utf-8
|
||||||
# Update by : https://github.com/cppla/ServerStatus
|
# Update by : https://github.com/cppla/ServerStatus
|
||||||
# 支持Python版本:2.7 to 3.5
|
# 支持Python版本:2.7 to 3.7
|
||||||
# 支持操作系统: Linux, OSX, FreeBSD, OpenBSD and NetBSD, both 32-bit and 64-bit architectures
|
# 支持操作系统: Linux, OSX, FreeBSD, OpenBSD and NetBSD, both 32-bit and 64-bit architectures
|
||||||
# 时间: 20190128
|
# 时间: 20191224
|
||||||
# 说明: 默认情况下修改server和user就可以了。
|
# 说明: 默认情况下修改server和user就可以了。
|
||||||
|
|
||||||
SERVER = "127.0.0.1"
|
SERVER = "127.0.0.1"
|
||||||
|
@ -248,6 +248,19 @@ def get_packetLostRate():
|
||||||
t2.start()
|
t2.start()
|
||||||
t3.start()
|
t3.start()
|
||||||
|
|
||||||
|
def byte_str(object):
|
||||||
|
'''
|
||||||
|
bytes to str, str to bytes
|
||||||
|
:param object:
|
||||||
|
:return:
|
||||||
|
'''
|
||||||
|
if isinstance(object, str):
|
||||||
|
return object.encode(encoding="utf-8")
|
||||||
|
elif isinstance(object, bytes):
|
||||||
|
return bytes.decode(object)
|
||||||
|
else:
|
||||||
|
print(type(object))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
for argc in sys.argv:
|
for argc in sys.argv:
|
||||||
if 'SERVER' in argc:
|
if 'SERVER' in argc:
|
||||||
|
@ -267,10 +280,10 @@ if __name__ == '__main__':
|
||||||
print("Connecting...")
|
print("Connecting...")
|
||||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
s.connect((SERVER, PORT))
|
s.connect((SERVER, PORT))
|
||||||
data = s.recv(1024)
|
data = byte_str(s.recv(1024))
|
||||||
if data.find("Authentication required") > -1:
|
if data.find("Authentication required") > -1:
|
||||||
s.send(USER + ':' + PASSWORD + '\n')
|
s.send(byte_str(USER + ':' + PASSWORD + '\n'))
|
||||||
data = s.recv(1024)
|
data = byte_str(s.recv(1024))
|
||||||
if data.find("Authentication successful") < 0:
|
if data.find("Authentication successful") < 0:
|
||||||
print(data)
|
print(data)
|
||||||
raise socket.error
|
raise socket.error
|
||||||
|
@ -279,7 +292,7 @@ if __name__ == '__main__':
|
||||||
raise socket.error
|
raise socket.error
|
||||||
|
|
||||||
print(data)
|
print(data)
|
||||||
data = s.recv(1024)
|
data = byte_str(s.recv(1024))
|
||||||
print(data)
|
print(data)
|
||||||
|
|
||||||
timer = 0
|
timer = 0
|
||||||
|
@ -335,7 +348,7 @@ if __name__ == '__main__':
|
||||||
array['time_10086'] = pingTime.get('10086')
|
array['time_10086'] = pingTime.get('10086')
|
||||||
array['tcp'], array['udp'], array['process'], array['thread'] = tupd()
|
array['tcp'], array['udp'], array['process'], array['thread'] = tupd()
|
||||||
|
|
||||||
s.send("update " + json.dumps(array) + "\n")
|
s.send(byte_str("update " + json.dumps(array) + "\n"))
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
raise
|
raise
|
||||||
except socket.error:
|
except socket.error:
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
# coding: utf-8
|
# coding: utf-8
|
||||||
# Update by : https://github.com/cppla/ServerStatus
|
# Update by : https://github.com/cppla/ServerStatus
|
||||||
# 依赖于psutil跨平台库
|
# 依赖于psutil跨平台库
|
||||||
# 支持Python版本:2.7 to 3.5
|
# 支持Python版本:2.7 to 3.7
|
||||||
# 支持操作系统: Linux, Windows, OSX, Sun Solaris, FreeBSD, OpenBSD and NetBSD, both 32-bit and 64-bit architectures
|
# 支持操作系统: Linux, Windows, OSX, Sun Solaris, FreeBSD, OpenBSD and NetBSD, both 32-bit and 64-bit architectures
|
||||||
# 时间: 20190128
|
# 时间: 20191224
|
||||||
# 说明: 默认情况下修改server和user就可以了。
|
# 说明: 默认情况下修改server和user就可以了。
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ def get_hdd():
|
||||||
for disk in psutil.disk_partitions():
|
for disk in psutil.disk_partitions():
|
||||||
if not disk.device in disks and disk.fstype.lower() in valid_fs:
|
if not disk.device in disks and disk.fstype.lower() in valid_fs:
|
||||||
disks[disk.device] = disk.mountpoint
|
disks[disk.device] = disk.mountpoint
|
||||||
for disk in disks.itervalues():
|
for disk in disks.values():
|
||||||
usage = psutil.disk_usage(disk)
|
usage = psutil.disk_usage(disk)
|
||||||
size += usage.total
|
size += usage.total
|
||||||
used += usage.used
|
used += usage.used
|
||||||
|
@ -64,7 +64,7 @@ class Traffic:
|
||||||
self.tx = collections.deque(maxlen=10)
|
self.tx = collections.deque(maxlen=10)
|
||||||
def get(self):
|
def get(self):
|
||||||
avgrx = 0; avgtx = 0
|
avgrx = 0; avgtx = 0
|
||||||
for name, stats in psutil.net_io_counters(pernic=True).iteritems():
|
for name, stats in psutil.net_io_counters(pernic=True).items():
|
||||||
if "lo" in name or "tun" in name \
|
if "lo" in name or "tun" in name \
|
||||||
or "docker" in name or "veth" in name \
|
or "docker" in name or "veth" in name \
|
||||||
or "br-" in name or "vmbr" in name \
|
or "br-" in name or "vmbr" in name \
|
||||||
|
@ -220,6 +220,19 @@ def get_packetLostRate():
|
||||||
t2.start()
|
t2.start()
|
||||||
t3.start()
|
t3.start()
|
||||||
|
|
||||||
|
def byte_str(object):
|
||||||
|
'''
|
||||||
|
bytes to str, str to bytes
|
||||||
|
:param object:
|
||||||
|
:return:
|
||||||
|
'''
|
||||||
|
if isinstance(object, str):
|
||||||
|
return object.encode(encoding="utf-8")
|
||||||
|
elif isinstance(object, bytes):
|
||||||
|
return bytes.decode(object)
|
||||||
|
else:
|
||||||
|
print(type(object))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
for argc in sys.argv:
|
for argc in sys.argv:
|
||||||
if 'SERVER' in argc:
|
if 'SERVER' in argc:
|
||||||
|
@ -239,10 +252,10 @@ if __name__ == '__main__':
|
||||||
print("Connecting...")
|
print("Connecting...")
|
||||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
s.connect((SERVER, PORT))
|
s.connect((SERVER, PORT))
|
||||||
data = s.recv(1024)
|
data = byte_str(s.recv(1024))
|
||||||
if data.find("Authentication required") > -1:
|
if data.find("Authentication required") > -1:
|
||||||
s.send(USER + ':' + PASSWORD + '\n')
|
s.send(byte_str(USER + ':' + PASSWORD + '\n'))
|
||||||
data = s.recv(1024)
|
data = byte_str(s.recv(1024))
|
||||||
if data.find("Authentication successful") < 0:
|
if data.find("Authentication successful") < 0:
|
||||||
print(data)
|
print(data)
|
||||||
raise socket.error
|
raise socket.error
|
||||||
|
@ -251,7 +264,7 @@ if __name__ == '__main__':
|
||||||
raise socket.error
|
raise socket.error
|
||||||
|
|
||||||
print(data)
|
print(data)
|
||||||
data = s.recv(1024)
|
data = byte_str(s.recv(1024))
|
||||||
print(data)
|
print(data)
|
||||||
|
|
||||||
timer = 0
|
timer = 0
|
||||||
|
@ -308,7 +321,7 @@ if __name__ == '__main__':
|
||||||
array['time_10086'] = pingTime.get('10086')
|
array['time_10086'] = pingTime.get('10086')
|
||||||
array['tcp'], array['udp'], array['process'], array['thread'] = tupd()
|
array['tcp'], array['udp'], array['process'], array['thread'] = tupd()
|
||||||
|
|
||||||
s.send("update " + json.dumps(array) + "\n")
|
s.send(byte_str("update " + json.dumps(array) + "\n"))
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
raise
|
raise
|
||||||
except socket.error:
|
except socket.error:
|
||||||
|
|
Loading…
Reference in New Issue