EasyVista, diversos scripts
Ahora todos los scripts que tenía para Redmine, por cambio de herramienta, los tengo que adaptar a EasyVista.
Pereza total. Solo adaptaré los más necesarios y según los vaya necesitando. Tiempo.
Básicamente sigue siendo lo mismo. Bajarse los datos con curl y esta vez utilizar jq para estructurar los json y resto que haga falta con awk.
Sigo intentando no poner código completo.
Termina 2024 con varios scripts en bash
Utilizando sobre todo awk y curl
- fedicom3.sh: envía pedidos, descarga albaranes con esta versión de protocolo
- resumen_gasluz.sh, grafica (gnuplot) y saca varios ratios sobre consumos de estos tipos
- entrenos.sh, mejorado, muchos más gráficos, ratios de kms, sesiones, horas, por meses, por circuitos, por bici utilizada, zapatillas, fc, ...
- tickets.sh descarga de redmine y easyvista para diversas estadísticas
- tid2json2txt.sh, varias tiddlywikis que tengo, sap y gestión de temas en curso, se exportan a otros formatos donde pueda consultar de otras formas via web
- busca_me.sh, motor principal de búsquedas de ficheros
- hazcopia.sh, copias de seguridad con git y rclone
- calcrontab.sh y calen.sh , genera fichero texto y pdf diario del planning a seis semanas vista
- viajes.sh, genera ficheros varios para web consulta mis viajes
- libros.sh, lo mismo pero para libros
y más ...
Redmine, diversos scripts III
Otro script en bash y sobre todo awk.
Es lo que mas me viene siempre a mano en cuanto se me ocurre automatizar alguna tarea, o sobre todo sacar resumen de una fuente ingente de datos.
Esta vez el script tiempo_reaccion.sh exporta tickets de redmine entre las fechas que se le meta como parámetros y analiza el tiempo de respuesta en conjuntoe:
- descarga todos aquellos tickets entre fechas
- los que tengan tiempo de respuesta superior a una dada analiza que:
- si fueron dados de alta durante el finde de semana los excluye (desde el viernes por la tarde)
- si fueron dados de alta fuera jornada laboral en día de diario también los excluye
- si son tickets creados por nosotros, no contabilizan para el tiempo de respuesta
- crea por cada casuística 1 fichero csv
Como siempre mola obtener todos esos datos de forma rápida y se agradece no tener que trabajar de forma manual con el excel.
awk es una herramienta bestial, creada hace muchos años y que se maneja muy bien con cantidad de datos enorme.
Redmine, diversos scripts II
Otro script en bash amanuel.sh (así, tal cual, pasando de todo) que hace lo siguiente:
- descarga todos aquellos tickets con determinadas características
- los muestra por pantalla y pregunta si se sigue con el proceso. Si es así:
- los cambia de categoría a Control de Cambios
- los cambia de tipo a Petición
- los asigna al compañero estipulado
Quita bastante trabajo evitando entrar de 1 en 1 en cada ticket para hacer estos cambios.
Redmine, diversos scripts
Fin de semana dedicado a crear diversos scripts que manejen la información de Redmine.
Varios para descargar los tickets hechos por mi y que me haga simples recuentos; otros con varias condiciones de proyectos, asignados, etc ..
Los que más me han gustado son 2:
quita_firma.sh que elimina todas las firmas legales que se van añadiendo en el ticket según la gente va contestando los emails. No se cómo aguantamos tanto la incomodidad de la jerga legal que se mete en las conversaciones/hilos de los emails de trabajo.
Eso queda reflejado en el ticket de redmine de forma que tienes que hacer scroll infinito para llegar al punto donde se añade la información en el cuerpo de cada email.
Pues bien, este script elimina de todo el ticket toda esa morralla que solo perjudica la lectura. Después de ejecutarlo, ¡qué a gusto y claro se puede leer ahora!
Además también elimina de las firmas todos esos enlaces absurdos de las redes sociales. Twitter, Linkedin, Facebook, Instagram de la empresa, pero vamos a ver ... ¿para qué son necesarios en hilos de incidencias entre compañeros de trabajo? ..
cierra.sh hace varias cosas al ticket que sele pase como parámetro:
- le pone fecha fin la del dia
- %realizado a 100%
- le añade un mínimo de tiempo "0.1"
- le cambia el Estado a Resuelta
- lo pone como cerrado
Y en eso gasté mi sábado (entre otras cosas).
Disfrutando de la linea de Comandos II, resultados de un Web Service a fichero excel
Continuación de Disfrutando de la linea de comandos I
Ya tenemos el resultado del web service obtenido con Curl
Y ahora tenemos que desgranar el resultado devuelto en JSON en ficheros excel. Habrá librerías o utilidades que dado un fichero texto csv lo convierta a formato Excel, pero si queremos ahorrarnos ese paso podemos crear ficheros tsv (separador tabulador) y nombrar a los ficheros con la extensión ".xls". Con ello se consigue que la mayoría de los ordenadores consigan abrir ese fichero en la hoja de cálculo.
Como ya comenté el formato JSON es repetitivo en mi opinión y más complicado de ser tratado por máquinas que un simple csv. Utilizaremos la herramienta jq que es capaz de desgranar cada elemento del JSON y además con una simple opción la formatea a formato @tsv o @csv.
Disfrutando de la linea de Comandos I Web Services con Curl
Intento no extenderme en cada uno de los puntos.
Linux, potencia en la línea de comandos
Tengo varios programas realizados en python y en Go que recogen datos utilizando web services, los manipulan, y los registran en mi ERP. Luego se utilizan otros servicios también con otros programas para devolver datos actualizados.
Cada vez más me gusta el poder utilizar herramientas que me da el propio sistemas operativo, sin necesidad de realizar programas en python o Go.
Es increíble la potencia de "awk", "sed", "grep" para manipular datos. Es también complicado pero con una línea en "bash" se puede hacer lo que en lenguajes de programación pueden ser 10.