#!/usr/bin/python3 # # Imports # import sys import time import argparse import subprocess # # Methods # def get_temperature(disks): command = "sudo smartctl -a /dev/%s | grep Temperature_Celsius | awk '{print $10}'" % disk result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) try: return int(result.stdout) except Exception as e: return None # # Settings # hostname = 'shuttle' interval = 10 disks = ['sda', 'sdb', 'sdc', 'sdd'] # # Main # while True: timestamp = int(time.time()) for disk in disks: temperature = get_temperature(disk) if temperature: print('PUTVAL {}/exec-temperature/gauge-{}_total {}:{}'.format(hostname, disk, timestamp, temperature)) time.sleep(interval)