mirror of
https://github.com/librenms/librenms-agent.git
synced 2024-05-09 09:54:52 +00:00
46 lines
1.1 KiB
Plaintext
46 lines
1.1 KiB
Plaintext
|
#!/usr/bin/env python
|
||
|
import socket
|
||
|
import sys
|
||
|
import os
|
||
|
|
||
|
# Unix socket
|
||
|
server_address = '/var/run/rrdcached.sock'
|
||
|
|
||
|
# TCP socket
|
||
|
#server_address = 'localhost:42217'
|
||
|
|
||
|
sock = None
|
||
|
try:
|
||
|
if os.path.exists(server_address):
|
||
|
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||
|
else:
|
||
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||
|
if ':' in server_address:
|
||
|
split = server_address.rsplit(':', 1)
|
||
|
server_address = (split[0],int(split[1]))
|
||
|
else:
|
||
|
server_address = (server_address, 42217)
|
||
|
|
||
|
sock.connect(server_address)
|
||
|
except socket.error as e:
|
||
|
sys.stderr.write(str(e) + ': ' + str(server_address) + '\n')
|
||
|
sys.exit(1)
|
||
|
|
||
|
buffer = ''
|
||
|
max = -1
|
||
|
try:
|
||
|
sock.settimeout(5)
|
||
|
sock.sendall('STATS\n'.encode())
|
||
|
while max == -1 or len(buffer.split('\n')) < max:
|
||
|
buffer += sock.recv(1024).decode()
|
||
|
if max == -1:
|
||
|
# the first line contains the number of following lines
|
||
|
max = int(buffer.split(' ')[0]) + 1
|
||
|
except socket.error as e:
|
||
|
sys.stderr.write(str(e) + '\n')
|
||
|
sys.exit(1)
|
||
|
|
||
|
sock.close()
|
||
|
print('<<<rrdcached>>>')
|
||
|
print(buffer.rstrip('\n'))
|