43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
import os
|
|
import subprocess
|
|
from mailer import Mailer
|
|
|
|
servers = [5, 7, 9, 10, 12, 18, 19, 23, 24, 25, 26, 27, 30]
|
|
GOOGLE_OWNER = "snsd0805@cmlab.csie.ntu.edu.tw"
|
|
GOOGLE_CODE = os.environ['GOOGLE_CODE']
|
|
|
|
if __name__ == '__main__':
|
|
mailer = Mailer(GOOGLE_OWNER, GOOGLE_CODE)
|
|
|
|
msg = "<pre>"
|
|
msg += "Every Wednesday 00:30\n" + '- ' * 30 + '\n'
|
|
for server in servers:
|
|
ssh_key = "/auto/extra/unixmanager5xx/id_rsa_cml"
|
|
command = f'ssh cml{server}.csie.ntu.edu.tw -4 -i {ssh_key} -o StrictHostKeyChecking=no -o LogLevel=QUIET -o ConnectTimeout=3 -T tmpstat'
|
|
print(command)
|
|
|
|
msg += f"cml{server}\n"
|
|
output = subprocess.getoutput(command)
|
|
if output:
|
|
partitions = output.split('\n')
|
|
for partition in partitions:
|
|
device, size, used, available, used_percent, mount = partition.split()
|
|
percent_num = int(used_percent[:-1])
|
|
if percent_num >= 90:
|
|
color = 'red'
|
|
elif percent_num >= 80:
|
|
color = 'orange'
|
|
else:
|
|
color = 'green'
|
|
|
|
msg += f' {mount} {used.rjust(6)}/{size.ljust(6)}(<span style="color: {color}">{used_percent.rjust(4)}</span>) has {available.rjust(5)} remaining\n'
|
|
print(f" {mount} {used.rjust(6)}/{size.ljust(6)}({used_percent.rjust(4)}) has {available.rjust(5)} remaining")
|
|
msg += '- ' * 30 + '\n'
|
|
else:
|
|
msg += ' Not Working\n' + '- ' * 30 + '\n'
|
|
print(f" Not Working")
|
|
|
|
msg += "</pre>"
|
|
mailer.send('unix_manager@cmlab.csie.ntu.edu.tw', 'unix_manager@cmlab.csie.ntu.edu.tw', 'CML Server /tmp Usage Weekly Report', msg)
|
|
|