Páginas (2): 1 2   
Shordi   06-06-2022, 20:51
#1
Tal como se describe en título es algo poco útil. Pero os traigo la versión para discos locales del pequeño módulo extraído del proyecto Intriga original para controlar la ocupación de los servidores discos en los servidores. Es decir, tenemos varios servidores, de BBDD, de copias de seguridad (incrementales y no-incrementales), de ficheros, etc. et.,  de los que hay que controlar el nivel de ocupación de los discos. Sobre todo los de las carpetas compartidas entre usuarios y los de copias de seguridad tienen la mala costumbre de llenarse más o menos deprisa y hay que comprobar qué está pasando ahí.
Intriga ofrece esta herramienta para explorar los distintos discos de los distintos servidores de manera rápida antes de que haya algún problema real.
Como aquí no hay servidores ni leches, pues esto que os traigo no pasa de de ser una "herramienta cutre con gráficos primitivos", pero que me he divertido un montón haciéndola.

El aspecto es éste:

[Imagen: Hi7AInz.png]

Los iconitos de la lupa y los de la consola despliegan la carpeta seleccionada y te dan acceso vía consola a la misma.
Tened en cuenta que esto explora carpetas "reales", es decir no sigue enlaces simbólicos y demás. No se trata de ver el árbol de carpetas sino la ocupación en los discos.

Para hacer los gráficos de tarta he utilizado una versión propia del gb.chart, que va incluída en el código fuente del programita. Lo he hecho así porque el gb.chart es bastante desastre (creo que es una versión a medio hacer y que aparece, no sé por qué, en gris entre los componentes de gambas, con lo que no me fío que no vaya a desaparecer en cualquier momento) y siempre genera referencias cruzadas al cerrar los programas que la usan. Con esta versión eso no ocurre.

Saludos

P.D.: El archivo adjunto es la versión 1.0.1, los cambios a partir de dicha versión, si los hubiese, los podés descargar del proyecto en gitlab: https://gitlab.com/shordi/Ocupacion
Archivos adjuntos
.gz
Ocupacion-1.0.1.tar.gz (Tamaño: 38.62 KB Descargas: 4)
Última modificación: 08-06-2022, 11:09 por Shordi.

No podemos regresar
tincho   06-06-2022, 21:49
#2
Me lo descargue, le voy a echar un vistazo.

1 Saludo.
tincho   07-06-2022, 09:44
#3
Hola Shordi.
[Imagen: Sw5of5s.png]
Probé el programa, te paso el feedback:
  • Al seleccionar el disco duro el programa no realiza ninguna acción.
  • Luego doy click a la "lupa" y ahí se tira 21 minutos escaneando el disco [1].
[1] Como hay actividad en el disco del  servidor de archivos, que es otro ordenador del cual monto los directorios compartidos por SSH, estimo que el programa intenta contabilizar los archivos de dicho disco también, pero en rigor de verdad estos archivos no están en el disco local ¿Puede evitarse su escaneo?.

Luego, por curiosidad, instale Baobab para ver que tal lo hacia y tardo 2 segundos en mostrar el gráfico de ocupación.
[Imagen: tqEJhEm.png]
Todavía queda margen para optimización, tal vez usando la misma librería que usa Baobab o alguna otra.
Gracias por compartir el código.
Última modificación: 07-06-2022, 14:03 por tincho.

1 Saludo.
Shordi   07-06-2022, 13:34
#4
Cita:Probé el programa, te paso el feedback:
  • Al seleccionar el disco duro no el programa no realiza ninguna acción.
No sé a qué te refieres con eso. Al seleccionar un disco te muestra la carpeta raiz con su porcentaje. (A veces con eso basta) Si luego das a la lupa es cuando desglosa.
Cita:Luego doy click a la "lupa" y ahí se tira 21 minutos escaneando el disco [1].
Efectivamente. En los discos de red no había problema porque suelen ser unidades pequeñas y los escaneaba en un instante. Lo he estado estudiando y el problema no es de los discos ni de los discos montados con sshfs (yo tengo no menos de cinco) porque du no sigue los enlaces simbólicos por defecto. El problema parece estar en los permisos de acceso. Si se ejecuta el programa como root funciona muy rápido (bastante más rápido que Baobab, de hecho, que en mi máquina tarda casi tres minutos en ofrecer la gráfica de / y este no pasa, en mi máquina, de 20 segundos. De todas formas no se pretende competir con Baobab, son programas con intenciones distintas en origen y esto no es más que un pequeño módulo desgajado de un programa mayor).
Para solventar el problema le he añadido un pequeño formulario que te pide la clave de administrador al inicio del programa. Ahora funciona bien. En el contexto original esto no es necesario porque se utiliza en los servidores el mecanismo que describí aquí para usar sudo sin contraseña y que tenemos instalado en los servidores y demás máquinas donde es necesario.

Modifico el post original con la nueva versión 0.0.2

Gracias por el feed-back.

Saludos.

Constato que hay veces que no se genera la gráfica, sobre todo en carpetas que no tengan contenido o que tengan un solo archivo dentro. Otras veces sí se genera. No sé por qué.... Confused
Última modificación: 07-06-2022, 13:36 por Shordi.

No podemos regresar
tincho   07-06-2022, 14:04
#5
(07-06-2022, 13:34)Shordi escribió: No sé a qué te refieres con eso. Al seleccionar un disco te muestra la carpeta raiz con su porcentaje. (A veces con eso basta) Si luego das a la lupa es cuando desglosa.
Cita: 
Quise decir: "Al seleccionar el disco duro el programa no realiza ninguna acción."

(07-06-2022, 13:34)Shordi escribió: Lo he estado estudiando y el problema no es de los discos ni de los discos montados con sshfs
Mira, no. El inconveniente en mi caso es que no tiene sentido leer los archivos que están en otra parte (SSHFS) así que si que conviene poder decirle al programa que no escanee discos montados por red (SSHFS)
Lo que tu dices de los permisos, también sucede pero es un asunto diferente.
  • Para no escanear los discos montados se usa la opción -X por si te interesa agregarlo.
  • Para eludir el problema del error de permisos de acceso podes usar: du -h -k -x / -d 1 2>/dev/null
Última modificación: 07-06-2022, 14:24 por tincho.

1 Saludo.
Shordi   07-06-2022, 18:30
#6
Cita:Quise decir: "Al seleccionar el disco duro el programa no realiza ninguna acción."

Sí hace. Estás en /
[Imagen: nOnT6dj.png]

Cambias de unidad a /media/Datos y hace esto:

[Imagen: lzYSaku.png]

Quedando a la espera de que pulses la lupa para "escanear" la unidad.
Cita:Lo que tu dices de los permisos, también sucede pero es un asunto diferente.
  • Para no escanear los discos montados se usa la opción -X por si te interesa agregarlo.
  • Para eludir el problema del error de permisos de acceso podes usar: du -h -k -x / -d 1 2>/dev/null
Efectivamente. De todos los parámetros de du que probé y reprobé, al final se me pasó la x minúscula... porque no la iba buscando, supongo. Quiero decir que el tema de sshfs no era significativo dado que el comportamiento de no seguir los enlaces es el predeterminado de du y que las carpetas montadas con sshfs generaban un error de acceso.
Con el -x se ahorra un montón de tiempo y problemas y ahora va como una moto... al menos en mi equipo que tiene dos discos duros , uno SSD M2 de 500 GB para el / y otro mecánico de 4TB con los archivos. El primero con algo menos de 200gb y el segundo con algo menos de 900gb ocupadas. No tarda casi nada en ninguno de ellos... si no le digo que explore las carpetas donde tengo las bibliotecas de calibre una con 30.600 y otra con 44.500 sub carpetas.

Ahora funciona como esperaba de verdad. (Sigue teniendo ese pequeño fallo a la hora de hacer la tarta de carpetas con un solo elemento (como por ejemplo /home) pero es algo insignificante y duro de reproducir, con lo que de momento lo dejo así).
Actualizo la versión 0.0.3 que es la última.

Gracias por el feed-back, ha mejorado un montón el programita.

Saludos

No podemos regresar
tincho   07-06-2022, 21:27
#7
(07-06-2022, 18:30)Shordi escribió: Gracias por el feed-back
De nada, es un pequeño grano de arena.
Bien, probé la versión 3, funciona rápido, carga en unos segundos.
  • Me parece que seria mejor cambiar el evento Public Sub gv_Click() por Public Sub gv_Select() ya que permitiría la navegación con el teclado

1 Saludo.
Shordi   08-06-2022, 11:06
#8
mmmm... no. Select no es el apropiado. Se perdería el "Efecto Botón" de las últimas celdas. 
Pero para la navegación con teclado he añadido que se limpie/dibuje el gráfico al cambiar de línea. Eso sí queda bien.
Para no andar mareando más al personal con descargas y versiones le he puesto como número de versión la 1.0.1 y lo he colgado como un proyecto de gitlab.
Lo podéis descargar de https://gitlab.com/shordi/Ocupacion aunque esta misma versión 1.0.1 también la podéis bajar de éste hilo.

Saludos

Nota: Lo de gitlab mola, pero creo que nunca nadie a accedido ni descargado ninguno de mis proyectos. Queda como una especie de sistema de copia de seguridad del código molón... Big Grin Big Grin

No podemos regresar
tincho   08-06-2022, 11:27
#9
(08-06-2022, 11:06)Shordi escribió: Lo de gitlab mola, pero creo que nunca nadie a accedido ni descargado ninguno de mis proyectos

Yo por lo menos si lo he hecho.

1 Saludo.
Shell   30-01-2023, 00:45
#10
Uno de los problemas que veo es cuando tenemos muchos directorios. Donde aparece el cuadro de los nombres con los colorines.
Aunque se ponga el proyecto que ocupe toda la pantalla, puede ser insuficiente para mostrarse. Debería ser algo como una lista, gráfica, claro.
E incluso que se pudiera hacer clic en los elementos y actualizar el gráfico de tarta. Smile

El proyecto no esta nada mal. Y esta hecho en Gambas.
Parece que la idea es mostrar la gráfica desde el directorio padre, ¿ no ?. Nunca desde sus subdirectorios

Cuando el gráfico de tarta no se ve, ( al menos desde el directorio padre). Se debe usar la barra del split, moverla a la izquierda.
Parece un poco pequeño el gráfico. Es broma.  Pero si, a veces es pequeño.

Buena iniciativa.

P.d, menudo trabajo con las clases.  Por cierto, ¿ No tenemos una clase Chart ?. gb.chart. Es experimental.
¿ La añadiste de alguna forma ?.

Saludos
Última modificación: 30-01-2023, 00:50 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Páginas (2): 1 2   
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.