El blog de i5513, Bares, Debian gnu linux,
Sevilla FC y mucho más

Título histórico: "Páginas sorprendentes o habituales"
Descripción histórica: "Recordaré las páginas q me gusten o con las que me ría"
Descripción actual: No te calles, di lo que piensas y piensa lo que digas
Producciones i5513

Monday, March 21, 2022

 

apt-key obsoleto y como mantener solo dos kernels en tu /boot pequeño (256 MB)

Hace tiempo que ignoraba los mensajes del sudo apt update sobre las claves en formato legacy

Hoy me ha dado por hacer la oportuna limpieza

sudo apt-key list |less

pub   rsa4096 2014-02-13 [SC] [caduca: 2024-02-11]

428B 5197 DE95 2586 DA52  0298 E49C C041 5DC2 D5CA

uid        [desconocida] Pipelight Dev Team (Package Builder) <webmaster@fds-team.de>

sub   rsa4096 2014-02-13 [E] [caduca: 2024-02-11]

sudo apt-key remove " 428B 5197 DE95 2586 DA52  0298 E49C C041 5DC2 D5CA"
  • Usando el nuevo formato:
sudo apt-key export "8CAE 012E BFAC 38B1 7A93  7CD8 C5E2 2450 0C12 89C0" |
gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/teamviewer2017.gpg > /dev/null

También he aprovechado para intentar que cuando se actualice el kernel no se quede sin espacio /boot (no puedo ampliarlo de forma sencilla). Tras revisar creo que lo más sencillo debe ser la siguiente solución:

Apt {
Update {
    Post-Invoke {"/usr/local/sbin/eliminarKernels"; };
    };
}
#!/bin/bash
upgrade=$(apt list --upgradable linux-image-amd64 2> /dev/null |awk -F/ '/\/unstable/ { print $1}')
if [ -n "$upgrade" ];
then
    echo "Encontrado nuevo kernel ($upgrade). Eliminamos kernel anterior ... " >&2
    a_eliminar=$(dpkg -l linux-image-?*amd64 | grep -v $(uname -r) | awk '/^ii/ { print $2} )
    apt purge $a_eliminar
else
    echo "No hay kernel disponible para actualizar"
fi
 

Labels: , , ,


Sunday, May 02, 2021

 

Estudio de final de Liga 2020-2021

 Gracias a http://linguasport.com/ dispongo de la serie de partidos en primera división. Un pequeño script en python me ha ayudado a ver qué puede pasar en estos últimos 5 partidos de liga.

El script filtra las temporada donde han coincidido Sevilla, Atlético de Madrid, Real Madrid y Barcelona. Genera todas las tuplas de cinco partidos que se han jugado en esas temporadas y suma los puntos obtenidos en esos partidos por dichos equipos. Cada tupla sería un posible final de temporada.

Hasta la última jornada de mis datos (hace como dos meses (joranada 17)), había 2197 tuplas. Simulando cada tupla obtengo el siguiente gráfico (vía libre office)

A falta de 4 jornadas:




A falta de 5 jornadas:




Como me esperaba mucha suerte tiene que tener el Sevilla para no quedar cuarto ... pero claro esta temporada no es como otra cualquiera. ¡El Sevilla bate récord! 

En una palabra "¡Temporadón!"

Dato en crudo:
A falta de 4 partidos:
EquipoPrimeroSegundoTerceroCuarto
Atlético_Madrid 1096 643 509
Sevilla 2 21 137
Real_Madrid 707 819 679
Barcelona 468 790 948
A falta de 5 partidos:
EquipoPrimeroSegundoTerceroCuarto
Atlético_Madrid 920 621 486
Sevilla 42 190 433
Real_Madrid 734 697 539
Barcelona 501 689 739

Rachas con las que el Sevilla saldría campeón ... python decide en caso de empate :D) :
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1942-19431ppppp
Sevilla1942-19431gggpg
Real_Madrid1942-19431gggpe
Barcelona1942-19431ppeeg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1942-19432ppppg
Sevilla1942-19432ggpgg
Real_Madrid1942-19432ggpep
Barcelona1942-19432peegg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1945-19461peegp
Sevilla1945-19461geegg
Real_Madrid1945-19461egepg
Barcelona1945-19461gggpp
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1945-19463egpgp
Sevilla1945-19463eggeg
Real_Madrid1945-19463epgeg
Barcelona1945-19463gppge
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1945-19464gpgpe
Sevilla1945-19464ggege
Real_Madrid1945-19464pgege
Barcelona1945-19464ppgee
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1945-194614eeepg
Sevilla1945-194614gpgeg
Real_Madrid1945-194614pgeep
Barcelona1945-194614pgegp
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1945-194615eepgp
Sevilla1945-194615pgegg
Real_Madrid1945-194615geepe
Barcelona1945-194615gegpe
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1945-194616epgpg
Sevilla1945-194616geggg
Real_Madrid1945-194616eepee
Barcelona1945-194616egpeg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1945-194617pgpgp
Sevilla1945-194617egggg
Real_Madrid1945-194617epeee
Barcelona1945-194617gpegg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1948-194919gegpe
Sevilla1948-194919gpggg
Real_Madrid1948-194919pgppp
Barcelona1948-194919ggpgp
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1948-194920egpeg
Sevilla1948-194920pgggg
Real_Madrid1948-194920gpppg
Barcelona1948-194920gpgpg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1949-19509pgpgp
Sevilla1949-19509gpggg
Real_Madrid1949-19509geege
Barcelona1949-19509gpgpp
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1949-195011pgpge
Sevilla1949-195011gggge
Real_Madrid1949-195011egepe
Barcelona1949-195011gppgg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1953-19548pppeg
Sevilla1953-19548gpggg
Real_Madrid1953-19548gegpe
Barcelona1953-19548gpgpg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1953-19549ppegp
Sevilla1953-19549pgggg
Real_Madrid1953-19549egpeg
Barcelona1953-19549pgpgp
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1953-195410pegpg
Sevilla1953-195410ggggp
Real_Madrid1953-195410gpege
Barcelona1953-195410gpgpg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1953-195411egpge
Sevilla1953-195411gggpg
Real_Madrid1953-195411pegeg
Barcelona1953-195411pgpge
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1953-195412gpgee
Sevilla1953-195412ggpgg
Real_Madrid1953-195412egege
Barcelona1953-195412gpgeg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1954-19552egppg
Sevilla1954-19552gggeg
Real_Madrid1954-19552ggegp
Barcelona1954-19552egegp
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1955-195625ggpep
Sevilla1955-195625pgggg
Real_Madrid1955-195625pgepg
Barcelona1955-195625gpgpg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1955-195626gpepg
Sevilla1955-195626ggggp
Real_Madrid1955-195626gepgp
Barcelona1955-195626pgpgg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1956-195723pggpp
Sevilla1956-195723gpggg
Real_Madrid1956-195723gpgpg
Barcelona1956-195723egpgg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1971-19725egepe
Sevilla1971-19725geggg
Real_Madrid1971-19725gegge
Barcelona1971-19725eegep
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1978-197911egepp
Sevilla1978-197911pggpg
Real_Madrid1978-197911eepge
Barcelona1978-197911ppggp
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1981-198229pgege
Sevilla1981-198229ggggp
Real_Madrid1981-198229gpegg
Barcelona1981-198229pppep
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1982-19835epgpg
Sevilla1982-19835gggge
Real_Madrid1982-19835egege
Barcelona1982-19835eggeg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1988-198925gpgpg
Sevilla1988-198925egggg
Real_Madrid1988-198925ggegp
Barcelona1988-198925ggeee
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1988-198926pgpge
Sevilla1988-198926ggggp
Real_Madrid1988-198926gegpg
Barcelona1988-198926geeeg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1989-199023pgggp
Sevilla1989-199023ggggg
Real_Madrid1989-199023egggg
Barcelona1989-199023pepge
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1990-19914epege
Sevilla1990-19914ggggg
Real_Madrid1990-19914ggeee
Barcelona1990-19914gggeg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1990-19915pegeg
Sevilla1990-19915ggggp
Real_Madrid1990-19915geeep
Barcelona1990-19915ggegp
EquipoTemporadaJornada inicioRacha
Atlético_Madrid1994-19959ppgeg
Sevilla1994-19959ggpgg
Real_Madrid1994-19959pggge
Barcelona1994-19959eggpe
EquipoTemporadaJornada inicioRacha
Atlético_Madrid2005-200634gppee
Sevilla2005-200634ggggg
Real_Madrid2005-200634gggep
Barcelona2005-200634pgggp
EquipoTemporadaJornada inicioRacha
Atlético_Madrid2006-20075egppe
Sevilla2006-20075gpggg
Real_Madrid2006-20075epggp
Barcelona2006-20075ggpge
EquipoTemporadaJornada inicioRacha
Atlético_Madrid2006-200712egpge
Sevilla2006-200712gpggg
Real_Madrid2006-200712ggpgp
Barcelona2006-200712gegee
EquipoTemporadaJornada inicioRacha
Atlético_Madrid2006-200721pgpep
Sevilla2006-200721eegeg
Real_Madrid2006-200721pgeee
Barcelona2006-200721egpgp
EquipoTemporadaJornada inicioRacha
Atlético_Madrid2006-200723pepgp
Sevilla2006-200723gegpg
Real_Madrid2006-200723eeeeg
Barcelona2006-200723pgpeg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid2007-200821pegpp
Sevilla2007-200821ggegg
Real_Madrid2007-200821gpgpp
Barcelona2007-200821egegg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid2007-200824ppgpg
Sevilla2007-200824ggpgg
Real_Madrid2007-200824ppggp
Barcelona2007-200824ggppe
EquipoTemporadaJornada inicioRacha
Atlético_Madrid2013-201425peggg
Sevilla2013-201425ggggg
Real_Madrid2013-201425geggp
Barcelona2013-201425pgpgg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid2016-201712pgepg
Sevilla2016-201712ggpgg
Real_Madrid2016-201712ggegp
Barcelona2016-201712eeegg
EquipoTemporadaJornada inicioRacha
Atlético_Madrid2016-201715pggge
Sevilla2016-201715ggggg
Real_Madrid2016-201715gpgpg
Barcelona2016-201715ggegg




Thursday, July 02, 2020

 

Ejecución scripts de ssh desde powershell


  • bash interpreta "\r" como un posible comando , de ahí el comportamiento que se muestra a continuación:


prueba.ps1:
write-host  "Normal:"
ssh  -o LogLevel=QUIET 10.241.167.42 "
ls /tmp/aa
"
write-host  "Sin \r:"
ssh  -o LogLevel=QUIET 10.241.167.42 (("
ls /tmp/aa
") -replace "`r")
Resultados:
Normal:
: command not found
ls: cannot access /tmp/aa: No such file or directory
: No such file or directory
Sin \r:
ls: cannot access /tmp/aa: No such file or directory


  • Los errores que escribe bash los recoge powershell de una forma un tanto extraña
prueba.ps1:

ssh  -o LogLevel=QUIET 10.241.167.42 (("
echo Antes de ls /tmp/aa
ls /tmp/aa
echo Despues de ls /tmp/aa
ls /tmp/kk
echo Despues de ls /tmp/kk
") -replace "`r")   


Resultados:

PS C:\> .\prueba.ps1
Sin \r:
Antes de ls /tmp/aa
ls: cannot access /tmp/aa: No such file or directory
Despues de ls /tmp/aa
Despues de ls /tmp/kk
ls: cannot access /tmp/kk: No such file or directory
PS C:\> $error[0]
PS C:\> $error[1]
PS C:\> $error[2]
PS C:\> vim .\prueba.ps1 # a 2>&1 al final de la última línea
PS C:\> .\prueba.ps1                                                                                       Sin \r:
Antes de ls /tmp/aa
Despues de ls /tmp/aa
Despues de ls /tmp/kk
ssh : ls: cannot access /tmp/aa: No such file or directory
En C:\prueba.ps1: 2 Carácter: 1
+ ssh  -o LogLevel=QUIET 10.241.167.42 (("
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (ls: cannot acce...le or directory:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
ls: cannot access /tmp/kk
: No such file or directory
PS C:\> $error[0]
: No such file or directory
PS C:\> $error[1]
ls: cannot access /tmp/kk
PS C:\> $error[2]
ssh : ls: cannot access /tmp/aa: No such file or directory
En C:\prueba.ps1: 2 Carácter: 1
+ ssh  -o LogLevel=QUIET 10.241.167.42 (("
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (ls: cannot acce...le or directory:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

PD: El editor de blogspot no me deja cambiar el tamaño del código a más grande por los medios "normales", no me complico , copiar y pegar ..
                                                                                          

Sunday, June 14, 2020

 

¿Cómo evitar que policykitd se apodere de apt-get?

Llevaba bastante tiempo teniendo que esperar un rato para actualizar los paquetes como siempre he hecho:

$ sudo apt update && sudo apt full-upgrade
Leyendo lista de paquetes... Hecho
E: Could not get lock /var/lib/apt/lists/lock. It is held by process 1488 (packagekitd)
N: Be aware that removing the lock file is not a solution and may break your system.
E: No se pudo bloquear el directorio /var/lib/apt/lists/

Ayer me decidí a investigar un poco más de lo que había hecho hasta ahora (había intentado chapucear haciendo el mask a packaekitd)

Y la solución es sencilla, aunque si no das con ella te  puedes tirar un buen rato buceando perdido en la documentación de policykitd

La clave es sobreescribir la política por defecto de la acción org.freedesktop.packagekit.system-sources-refresh (dejando ResultActive a no o a auth_admin):

$ sudo cat /etc/polkit-1/localauthority/10-vendor.d/org.freedesktop.packagekit.pkla
[Allow admins to upgrade the system]
Identity=unix-group:sudo
Action=org.freedesktop.packagekit.system-sources-refresh
ResultAny=no
ResultInactive=no
#ResultActive=yes # comportamiento por defecto
#ResultActive=auth_admin # Te pregunta gnome cuando quiere actualizar
#ResultActive=no # Le decimos que no queremos que se ocupe de esa tarea

Se queda logueado:
$ sudo journalctl | grep PolicyKit | grep Error
jun 14 23:24:42 doraemon polkitd[940]: Error performing authentication: GDBus.Error:org.freedesktop.PolicyKit1.Error.Cancelled: El usuario rechaz? el di?logo de autenticaci?n (polkit-error-quark 1)
Más info en la wikis/doc de las distros ...

https://wiki.debian.org/PolicyKit
https://doc.opensuse.org/documentation/leap/archive/15.0/security/html/book.security/cha.security.policykit.html

PD: No sé qué pasará con la instalación de software vía GUI


Friday, March 06, 2020

 

6 meses currando en entorno windows (bueno, ya un año ...)

Recuerdo cuando monté svrkiller, sería el 2005, un equipo que usaba para ejecutar múltiples tareas en múltiples servidores vía ssh y con solución ad-hoc.

Por aquél entonces ya me consideraba un "experto" en bash y en perl

Decenas de scripts parametrizados, para esto, para lo otro, todo lo que se solia hacer a mano

En mi siguiente experiencia laboral, monté svrgestorsae,  en poco tiempo descubrí el gran pdsh, y después desarrollé playbooks de ansible que ayudaban a mantener el inventario, monitorizacióla y la configuración de los sistemas.

De forma paralela aprendí selenium, y otras herramientas para automatizar los clicks, gnee fue la primera, y las pulsaciones de teclados de tareas repetitivas

Cuando en marzo de 2019 me incorporé a la administración pensé que sería un paso atrás en mis conocimientos tecnológicos pero una apuesta segura de futuro. Una vez dentro, empecé a lidiar con el software Microsoft...

Windows tiene cosas buenas y cosas malas... Cosas ilógicas y cosas maravillosas. De repente me aprendo visual basic, access y todo el mundillo de las macros de ms office.

El zenworks sustituye a ansible en mi vida, aunque no puedo disponer de toda su potencia ya que el zman dicen que está prohibido... Empiezo a toquetear el famoso, pero para mí inexplorado,  registro de windows. Lucho contra el sistema de impresión, contra el wsus, contra el IE, ...

¿¿Cómo hacia los "windowseros" todo aquello que yo supercontento hacia con un poco de bash, grep, sed, awk, perl, python, jq, xmlstarlet, ... ??

Powershell definitivamente ha cambiado mi concepción de Microsoft y de Windows

-get-help para el man y el apropos. Muy bien los about_*
-where para la mayoría de grep
-replace para hacer el 80% de lo q se hace con sed
-switch, select, {import,export}-csv, para simular el awk, head y tail, nunca más seleccionar por columnas, bien
-select-xml y convert-fromjson no los he usado pero seguramente hagande buenos sustitutos de jq y xmlstarlet
El less debería venir x defecto y deberían copiar algunas cosillas más del readline (y tb permitir modo Vim e implementar el fzf) . ¡¡El Alt-. con su combinación de Alt-n por delante funciona!!

|? y |% son abreviaciones geniales

Muchas de las cosas que se me han ocurrido que estaría bien tenerlas las he encontrado como módulos (como el módulo de autoit, o el del wsus, y el del windows update) , otras como el selenium-side-runner no son powershell pero vienen de lujo

Perl y python son insustituibles ^ ^, pero de momento no he dado con nada con los que echarlos de menos, los hashes y las listas / conjuntos de ps son más que suficientes para la inmensa mayoría de scripts

Habría que ver el manejo de memoria, y demás asuntos de rendimiento, pero bueno de momento bien

Por supuesto sigo viendo windows como algo  opaco, he visto algún libro que bien me pudiera orientar y aclarar muchas cosas. Cambiará el famoso c:\windows a algo relativamente organizado, seguro que más de uno sueña con system32...

¿Será de windows o powershell el siguiente libro técnico que me compre??

Como cambia la vida

Saludos!
PD: Esto lo escribí en septiembre de 2019, desde entonces podría escribir bastante más sobre powershell ... y sí, efectivamente me compré un pedazo de libro de powershell [1] que recomiendo a cualquiera que quiera aprender sin hacer copy y paste constante
[1] https://www.manning.com/books/windows-powershell-in-action-third-edition

Friday, December 07, 2018

 

Autofirma , error SAF_19, posible solución

Tenía que firmar un documento con AutoFirma y me aparecía el error
SAF_19: No hay ningún certificado válido en su almacén. Compruebe las fechas de caducidad e instale un certificado válido

Tras verificar que los certificados que tenía tenían caducidad válida aún, y tras instalarme la última versión de autofirma (1.6), el error seguía produciendose
Mi problema finalmente era que tenía instalado el paquete libnss:i386 y el libnss:x86_64. Una vez desinstalado el paquete libnss:i386 he podido firmar el documento. Espero que a alguien le pueda servir

Monday, November 19, 2018

 

tcpdump lee los paquetes, pero nc no los muestra [ Solución ]

He estado un par de días con un problema curioso:
Un rsyslog no grababa bien los logs que se recibían de un equipo, pero sí de otro equipo. El contenido de los logs era similar (eran logs de fortinet)
Investigando vi que el netcat tampoco veía los logs. El strace no mostraba ni siquiera el correspondiente recv para los logs que no se lograban registrar.
Tras muchas vueltas, tras aprender tcprewrite, tcpreplay, bittwistte, y finalmente el gran scapy, he caido que el servidor de syslog quizás no tuviera ruta de vuelta hacia la ip que enviaba la información que no se logueaba.
Aunque el syslog en este caso no necesitaba responder, al parecer necesita ruta de vuelta para poder funcionar. Si no tiene ruta de vuelta y el parámetro rp_filter está habilitado, el kernel descarta
¡ Gracias a David por indicarme el tema del rp_filter !

Archives

09/01/2003 - 10/01/2003   09/01/2008 - 10/01/2008   10/01/2008 - 11/01/2008   11/01/2008 - 12/01/2008   12/01/2008 - 01/01/2009   03/01/2009 - 04/01/2009   05/01/2009 - 06/01/2009   06/01/2009 - 07/01/2009   07/01/2009 - 08/01/2009   08/01/2009 - 09/01/2009   09/01/2009 - 10/01/2009   10/01/2009 - 11/01/2009   11/01/2009 - 12/01/2009   12/01/2009 - 01/01/2010   02/01/2010 - 03/01/2010   03/01/2010 - 04/01/2010   04/01/2010 - 05/01/2010   05/01/2010 - 06/01/2010   06/01/2010 - 07/01/2010   07/01/2010 - 08/01/2010   08/01/2010 - 09/01/2010   09/01/2010 - 10/01/2010   10/01/2010 - 11/01/2010   11/01/2010 - 12/01/2010   12/01/2010 - 01/01/2011   01/01/2011 - 02/01/2011   02/01/2011 - 03/01/2011   03/01/2011 - 04/01/2011   04/01/2011 - 05/01/2011   05/01/2011 - 06/01/2011   10/01/2011 - 11/01/2011   01/01/2012 - 02/01/2012   08/01/2012 - 09/01/2012   11/01/2012 - 12/01/2012   02/01/2013 - 03/01/2013   03/01/2013 - 04/01/2013   03/01/2014 - 04/01/2014   05/01/2014 - 06/01/2014   09/01/2015 - 10/01/2015   11/01/2015 - 12/01/2015   12/01/2015 - 01/01/2016   02/01/2016 - 03/01/2016   05/01/2016 - 06/01/2016   12/01/2016 - 01/01/2017   11/01/2018 - 12/01/2018   12/01/2018 - 01/01/2019   03/01/2020 - 04/01/2020   06/01/2020 - 07/01/2020   07/01/2020 - 08/01/2020   05/01/2021 - 06/01/2021   03/01/2022 - 04/01/2022  

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]