snap list --all | awk '/disabled/{print $1, $3}'sudo snap remove {paquete} --revision={revisión}snap list --all | awk '/disabled/{print $1, $3}' | while read sn rev; do \sudo snap remove "$sn" --revision="$rev"; done
snap list --all | awk '/disabled/{print $1, $3}'sudo snap remove {paquete} --revision={revisión}snap list --all | awk '/disabled/{print $1, $3}' | while read sn rev; do \sudo snap remove "$sn" --revision="$rev"; done
A continuación construiré un script para la identificación de dispositivos conectados a una red, con una IP asignada, sin importar si el equipo cuenta con alguna protección (firewall) que impida respuesta a consultas más tradicionales como ping.
El script lo construiré paso a paso, mostrando resultados parciales para una mejor comprensión. Todo script linux inicia con la identificación del interprete que debe utilizarse para la ejecución, de esta forma se pueden tener script de bash o de perl
#!/bin/bash
#!/urs/bin/perl
Para este script se hará uso del comando arping para realizar la consulta de dispositivos conectados, sudo para ejecutar otro comando con privilegios de administrador,grep para filtrado de resultados positivos, awk para mostrar los resultados (y optimizar el script), el blucle for;para la ejecución de la consulta múltiples veces, y echo para mostrar mensajes varios.
Se inicia con la mostrar un mensaje simple (equivalente a un "Hola mundo")
#!/bin/bash echo "Listado de direcciones IP conectadas"
Asumiremos que se hará sobre el rango de direcciones ip entre 192.168.1.1 y 192.168.1.254, por lo que se hará un bucle que nos cambie el valor del cuarto octeto
#!/bin/bash
echo "Listado de direcciones IP conectadas"
for i in {1..254}; do
echo "192.168.1.$i"
done
El comando arping requiere privilegios de administrador, por lo que será precedido por el comando sudo. Los parámetros utilizados con "-c 1", para indicar que se debe hacer un solo intento por cada IP; y "-I <interfaz>", parámetro requerido en todo equipo con más de una interfaz (se puede identificar el nombre de la interfaz con "ip addr")
#!/bin/bash
echo "Listado de direcciones IP conectadas"
for i in {1..254}; do
sudo arping -c 1 192.168.1.$i -I wlp2s0
done
Esta nueva versión del script ya nos mostrará la información que buscamos, identifica las IP que se encuentran activas en la red, pero las que no estén activas, mostrará un error. En el siguiente paso, el script se limitará a mostrar solo los casos en los que encuentre la IP activa. Para esto, utilizaremos el comando grep, para filtrar solo las líneas que contengan el texto "Unicast", así:
#!/bin/bash
echo "Listado de direcciones IP conectadas"
for i in {1..254}; do
sudo arping -c 1 192.168.1.$i -I wlp2s0 | grep "Unicast"
done
En el siguiente paso, podemos mejorar la salida del script, limitando la salida a la dirección IP y la MAC del equipo, utilizando awk, para que muestre el cuarto (IP) y quinto (MAC) campo de la salida completa:
#!/bin/bash
echo "Listado de direcciones IP conectadas"
for i in {1..254}; do
sudo arping -c 1 192.168.1.$i -I wlp2s0 | grep "Unicast" | \
awk '{print $4 " " $5}'
done
Finalmente se puede optimizar el script, utilizando awk para que filtre la salida (que actualmente lo hace grep), reduciendo el uso de un comando.
#!/bin/bash
echo "Listado de direcciones IP conectadas"
for i in {1..254}; do
sudo arping -c 1 192.168.1.$i -I wlp2s0 | awk '/Unicast/{print $4 " " $5}/'
done
El dia de hoy me topé con un problema aparentemente simple. Al tratar de enviar un pdf como adjunto a un correo electrónico, recibí una respuesta automática del servidor destino, reportando que se había excedido el tamaño de envió de mensaje.
Intenté regenerar el pdf, obteniendo una mejora de menos de 5% ... insuficiente.
Busqué formas de convertir el contendio del pdf a escala de grises y encontré lo siguiente:
convert -colorspace GRAY color.pdf gray.pdf (requiere ImageMagick)
gs \ -sOutputFile=output.pdf \ -sDEVICE=pdfwrite \ -sColorConversionStrategy=Gray \ -dProcessColorModel=/DeviceGray \ -dCompatibilityLevel=1.4 \ -dNOPAUSE \ -dBATCH \ input.pdf
Los resultados fueron archivos pdf en escala de grises, con pérdida de calidad, aunque el primer método ofrece menor perdida (más legible). Respecto al tamaño, convert redujo en un 68% el tamaño del archivo original, mientras que gs produce un pdf reducido en un 89% del tañaño original, pero perdiendo demasiada calidad en fotos y letras pequeñas.
“Hope is not a strategy.
Most people hope that things won't fail.
Hoping computers won't fail is bad.
You will die someday. Your PC will crash someday.
You have to design for failure.”
Thomas Bushnell
Nunca Ganaré una Maratón, pero eso no es excusa para no intentarlo.
Se lee bonito, pero como cuesta. Luego de tener problemas de colesterol el año pasado, "amanezco" este año pensando "correr o no correr". La motivación principal, tenía un objetivo claro y ya había sido cumplido.
Veo esta frase y me reto a mi mismo, en buscar maratones en centroamérica y encuentro que en los últimos 4 años han habido maratones en la primera semana de Julio. Además, encontré una carrera que me pareció que podía llegar a completar (www.yoamoes.com).
17 de Febrero era el día marcado en el calendario, para correr 21 kilómetros (media maratón), y por un costo de $15, tendría, hidratación, seguridad, camiseta (dry fit) y chip.
No todo en esta vida es simple, ya que luego de correr 400 kms en mi año de vida (desde mi cumpleaños), en una de mis últimas sesiones de entrenamiento, y con 6 kms por hacer, programados en la cabeza, un accidente en apenas 200 mts del inicio ... me hizo dudar si se puede correr 21 kms con un tobillo doblado e inflamado :(
2 días duros. Miércoles de dolor; Jueves de descepción; Viernes de luz en el camino. Gracias a mi hermana Liz y su pronto consejo de que hacer con hielo y paños calientes, sin mencionar es las vendas mágicas tipo kinesiotape. Viernes por la mañana dije que no correría, viernes a mediodía quería salir corriendo en el momento "ipso facto". Aun a este momento, no se si fue magia, efecto placebo o verdadero adelanto en la medicina deportiva.
17 de Febrero llegó y con el nerviosismo de "la primera vez" busqué concentrarme en realizar la actividad para la que me había preparado... correr, correr siempre para adelante. Fue hasta un día antes de la carrera que percibí la magnitud de la situación en la que me había metido, pues esta no era una carrera completamente "amateur", ya que contamos con delegaciones de varias agrupaciones de corredores de Guatemala (si, varias agrupaciones) y un grupo de Costa Rica. Sumado a ellos, varios individuos de otros países, lo que permitió ver al evento como internacional.
De los 21 Kms hay mucho que decir, pero eso... es otro cuento de otro día.
Luego de un fin de semana con examen, todo se ve más fácil, el horizonte se ve despejado y las preocupaciones baja... hasta que llega el lunes
Este lunes me pasó algo inesperado. Estando parqueado en el trabajo, carro no encendió. Hasta el día martes me lo revisó un mecánico, para decirme que no era otra cosa más que batería dañada. No lo creía, o no me pareció predecible, considerando el antecedente de que la batería anterior, fue la original del carro y que duró 15 años, mientras que esta, creo que duro solo 15 ó 18 meses.
Entre miércoles y viernes, ha sido una carrera sin fin por hechar a andar un par de servidores, y luego de muchos intentos y busqueda de información, encuentro que una piececita no es compatible con mi sistema, una simple controladora de discos, es decir, para mi sistema, el servidor no tiene discos!
Una laaarga llamada al proveedor, me guió por otras partes oscuras del sitio del fabricante (oscuras por no haberlas visto antes) para encontrar una solución factible, pero como ya falté a una clase esta semana, tendré que esperar a sábado por la mañana para averiguar como termina mi semana.
Hasta entonces
P.D. Solo he corrido el día lunes, pero aun con trabajo de sábado, espero correr mañana