import requests
from datetime import datetime
import subprocess
import time
import logging
import discord
effects_load = [28, 111, 67, 46, 156, 157]
effects_idle = [9, 63, 108, 8, 74, 90, 110, 138]
ip = "" #Ip of the Wled
logging.basicConfig(format='%(asctime)s : %(message)s', datefmt='%Y-%m-%d %H:%M:%S', level=logging.DEBUG)
while True:
sd_read = subprocess.run(["iostat 1 2|grep -E \'sda|sdb|sdc|sdd\' |awk \'{print $3}\'|tail -4"], capture_output=True,
text=True, shell=True).stdout.strip().splitlines()
disks_read = 0
for x in sd_read:
disks_read += int(x.strip().split(",")[0])
disks_read = disks_read // 4
sda_wrt = subprocess.run(["iostat 1 2|grep -E \'sda|sdb|sdc|sdd\' |awk \'{print $4}\'|tail -4"], capture_output=True,
text=True, shell=True).stdout.strip().splitlines()
disks_wrt = 0
for x in sda_wrt:
disks_wrt += int(x.strip().split(",")[0])
disks_wrt = disks_wrt // 4
moy = int(disks_read) + int(disks_wrt) // 2
print( moy)
if 7 > datetime.now().hour or datetime.now().hour >= 23:
effect_id = 38
light_level = 35
palette_id = 50
elif moy > 1000:
choix = datetime.now().day % len(effects_load)
effect_id = effects_load[choix]
light_level = 200
palette_id = 0
else:
choix = datetime.now().day % len(effects_idle)
effect_id = effects_idle[choix]
light_level = 200
palette_id = 11
sd_list = subprocess.run(['ls /dev |grep -E "^sd[abcd]$"'], capture_output=True, text=True, shell=True).stdout.strip().splitlines()
if len(sd_list) < 4:
break
else:
requests.get(f"http://{ip}/win&A={light_level}&FP={palette_id}&TT={0}&FX={effect_id}",timeout=7)
time.sleep(10)
#if a drive got disconnected, i got alerted in discord
client = discord.Client(intents=discord.Intents.default())
@client.event
async def on_ready():
print(f'Logged in as {client.user}!')
user = await client.fetch_user(268733669907103744)
await user.send(f"[+] : Un disque de l'array du NAS s'est déconnecté il y a actuellement => {sd_list}")
await client.close()
client.run("") #Discord API Key
c = 0
while c < 10:
requests.get(f"http://{ip}/win&A={200}&FP={66}&TT={0}&FX={184}",timeout=7)
time.sleep(10)
c += 1