Haciendo programa cliente servidor para conocer cuánto espacio ocupan HDD en Linux

Hola, hace tiempo fui a una entrevista de trabajo y me ofrecieron un proyecto muy interesante de cómo podríamos comunicar un programa que nos dijera cuánta capacidad del disco duro tenemos y el programa cliente hiciera una gráfica del mismo. La gráfica tendría que ser en forma de pastel.

Planteamiento

Mi planteamiento era hacer un comando, almacenarlo en un fichero de texto o variable de Python. El programa cliente se conecta al servidor y éste le devuelve en un JSON toda la información. El JSON será procesado en el PC cliente y mostrado en forma de pastel

Código del servidor en Linux

Por aquí dejo el código del cliente

import socket
import os

str(os.system('df -h | grep /dev/s>texto.txt'))


f = open("texto.txt", "r")
lineas = f.readlines()

from flask import Flask
from flask import Flask, render_template, request

app = Flask(__name__)

@app.route("/", methods=['GET'])
def hello():
    nombreUser = request.args.get('nombreUser')
    if nombreUser=="holamundo":

        return (lineas)
    else:
        return "error"

if __name__ == "__main__":
    app.run(host="0.0.0.0")

Código del servidor

Por aquí dejo el código del servidor:

import json
import pandas as pd
import matplotlib as plt
import re


df = pd.read_json('http://192.168.1.99:5000/?nombreUser=holamundo')
ds=df.to_string()
x = ds.split("\n")
pattern = r'[ ]+'
nom =[]
cap= []

for i in x:
    try:
        nom =[]
        cap= []
        l = re.split(pattern, i)
        capacidad=float(l[5].replace("%",""))
        hdd=l[1]
        nom.append(hdd)
        cap.append(capacidad)
        nom.append("Libre")
        cap.append(100-capacidad)
        
        import matplotlib.pyplot as plt

        x = cap
        labels = nom


        fig, ax = plt.subplots()
        ax.pie(x, labels = labels, autopct='%.0f%%')
        ax.set_title('Capacidad '+str(hdd))
        plt.show()
        
    except Exception as e:
        print(e)

Resultado

Aquí vemos el resultado de nuestro trabajo:

Fuentes/Referencias

https://blog.facialix.com/crear-graficos-circulares-pastel-con-python-y-matplolib/

Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad