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/

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
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.