recuperar sesión de tmate

Tmate, Instant terminal sharing ( https://tmate.io/ ) es un multiplexador de terminales basdo en tmux (https://github.com/tmux/tmux/wiki) . Así a lo tosco, te permite compartir una o varias sesiones de terminal en la misma conexión. Es una de las herramientas que más intensamente uso para trabajar en equipo de manera remota. Tiene algunas complicaciones como atajos de teclado, configuraciones, etc… pero funciona realmente bien y aporta mucho más valor que problemas.

Si por lo que sea has cerrado el terminal, o no sabes cómo has salido de la sesión… aún puedes recuperarla… En /tmp/tmate-1000 tienes sockets a todas las sesiones abiertas. Siemplmente prueba uno a uno los sockets, entra con attachy decide si quieres recuperar el control de la sesión o matarla

tmate -S /tmp/tmate-1000/4nfqme attach

Recuerda también que si quieres recuperar la sesión ssh puedes hacerlo. Desde dentro de tu sesión ssh con control + b + colon. Donde colon son los dos puntos :

Eso te acceso a un modo de operación con tmate. El comando show-messages te dará información sobre el acceso a tu sesión

Wed Jul 17 14:20:00 2019 [tmate] Connecting to ssh.tmate.io…
Wed Jul 17 14:20:00 2019 [tmate] Note: clear your terminal before sharing readonly access
Wed Jul 17 14:20:00 2019 [tmate] web session read only: https://tmate.io/t/ro-DOKIIyahkHigjfF5JbHFr1Fdm
Wed Jul 17 14:20:00 2019 [tmate] ssh session read only: ssh ro-DOKIIyahkHigjfF5JbHFr1Fdm@ln2.tmate.io
Wed Jul 17 14:20:00 2019 [tmate] web session: https://tmate.io/t/FLb5IYsUyjZpp2dIdGuznh2NZ
Wed Jul 17 14:20:00 2019 [tmate] ssh session: ssh FLb5IYsUyjZpp2dIdGuznh2NZ@ln2.tmate.io

Como puedes ver tienes tanto acceso de sesión con el usuario guest o de sólo lectura. Además de acceso vía web.

gnome no levanta después de login con ligthdm

Hoy hemos solucionado un problema que aunque es poco común es recurrente. Hay ocasiones en que al intentar acceder a nuestro equipo usando el login manager como en este caso ligthdm no es posible. Tras introducir la contraseña válida vemos como un flash de cambio de pantalla entre el login manager y lo que debería ser nuestro escritorio y nos devuelve al login manager.

En mi caso, esto me ha ocurrido un par de veces o tres a lo largo del tiempo y lo peor es empezar a buscar logs. El problema es que hay algo que no permite levantar nuestro entorno ya que la password es correcta, así que debe ser algo que ejecuta el servidor X con nuestro usuario o bien algo de gnome , en este caso.

Dejo aquí un checklist de cosas para testear:

  • arrancar en consola tty ( control + alt + f1 ) acceder con tu usuario
  • revisar el contenido del fichero .xsession-errors
  • parar nuestro login manager, por ejemplo ( /etc/init.d/lightdm stop ) y arrancar las X con startx. Comprobar si arranca y si hay errores
  • Revisar que el fichero  ~/.Xauthority tengo como propietario a tu usuario. Puede ocurrir que este fichero tenga como propietario a root y este sería el motivo por el que no arranca tu sesión. Elimínalo e intenta acceder a tu escritorio de nuevo.
  • revisar ficheros de log de sistema del servidor X /var/log/Xorg.0.log
  • revisar ficheros de log de login manager /var/log/lightdm/lightdm.log /var/log/lightdm/lightdm.log

 

En este caso el problema era el fichero .Xauthority que pertenecía a root, borrándolo y levantando las X de nuevo ha funcionado sin problemas.

 

 

Vaciar cache de mod_pagespeed de google

Una forma rápida de tunear nuestro servidor y ganar algo de velocidad en nuestros sites es usar mod_pagespeed de google que proporciona un sistema de compresión básico de css y js, así como una optimización de gestión en las imágenes, realmente sí se nota y no es complicado de instalar.

Una vez instalado, el problema puede venir al actualizar contenido, ¿ por qué ? por que nuestras hojas de estilos, código javascript o imágenes pueden estar cacheadas y volvernos locos pensando que no hemos hecho los cambios adecuados. Cuando esto sucede verifica que el servidor está actualizado manualmente y vacía la cachés.
¿ como se vacía la caché de mod_pagespeed ? Tenemos que generar una marca así de sencilla :

[code]
touch /var/cache/mod_pagespeed/cache.flush
[/code]

no wireless extension en kernel 3.6

Me estoy encontrando que en el kernel no viene por defecto activado ‘ cfg80211 wireless extensions compatibility ‘ con lo que al arrancar con un nuevo kernel, os detectará la tarjeta wireless pero si ejecutais ‘iwconfig‘ os aparecen todos los interfaces como ‘no wireless extension‘.
Para ello teneis que activarlo , volver a compilar el kernel, instalarlo y reiniciar :

 
[*] Networking support —>
— Networking support
Networking options —>
[ ] Amateur Radio support —>
< > CAN bus subsystem support —>
< > IrDA (infrared) subsystem support —>
< > Bluetooth subsystem support —>
< > RxRPC session sockets
-*- Wireless —>
— Wireless
<M> cfg80211 – wireless configuration API
[ ] nl80211 testmode command
[ ] enable developer warnings
[ ] cfg80211 regulatory debugging
[ ] enable powersave by default
[ ] cfg80211 DebugFS entries
[*] cfg80211 wireless extensions compatibility
<M> Common routines for IEEE802.11 drivers
[ ] lib80211 debugging messages
<M> Generic IEEE 802.11 Networking Stack (mac80211)
Default rate control algorithm (Minstrel) —>
[ ] Enable mac80211 mesh networking (pre-802.11s) support
[ ] Export mac80211 internals in DebugFS
[ ] Trace all mac80211 debug messages
[ ] Select mac80211 debugging features —>
< > WiMAX Wireless Broadband support —>
<*> RF switch subsystem support —>
< > Plan 9 Resource Sharing Support (9P2000) —>
< > CAIF support —>
< > Ceph core library (EXPERIMENTAL)
< > NFC subsystem support (EXPERIMENTAL) —>

 

Soporte Wifi BCM4313 [14e4:4727] en linux 3.6

Llevaba dándole vueltas para conseguir activar el soporte para la tarjeta wifi dando palos de ciego, pero el camino bueno es este :

http://linuxwireless.org/en/users/Drivers/brcm80211

usando make menuconfig activamos las siguientes opciones del kernel

 

Location: -> Device Drivers

  • -> Network device support
    • -> Wireless LAN
      • -> < m> Broadcom IEEE802.11n PCIe SoftMAC WLAN driver
      • -> < m> Broadcom IEEE802.11n embedded FullMAC WLAN driver
        • -> [*] SDIO bus interface support for FullMAC driver
        • -> [*] USB bus interface support for FullMAC driver

For the PCIe SoftMAC WLAN driver (brcmsmac) you need to enable select the BCMA bus driver as well:

Location: -> Device Drivers

-> Broadcom specific AMBA

-> <M> BCMA support

-> [*] Support for BCMA on PCI-host bus

 

 

recompilar , instalar el kernel nuevo y a correr

Soporte teclado usb en boot bajo linux 3.6

Compilando las nuevas ramas de kernel 3.6 con mi Debian Squeeze y usando particiones cifradas, al arrancar el sistema , en el boot salta el prompt para solicitar la password y poder desencriptar los discos. Pues bien, en ese momento con el kernel de Debian config-2.6.32-5-amd64 puedo usar el teclado perfectamente , pero con la rama 3.6 no.
Como hace tiempo que no recompilaba kernels me ha costado un poco localizado, pero el resultado es este: falta agregar el módulo hid_generic al initrd.

Para solucionarlo ? ,pues sencillo, desde la misma versión 3.6 arrancada se puede generar un nuevo initrd. Lo que hay que hacer es indicarle los módulos que queremos que agrege, para ello se mete el listado de modulos en el fichero /etc/initramfs-tools/modules, en nuestro caso todo esto
[shell]
usb_common
usbcore
usbhid
ehci_hcd
ohci_hcd
uhci_hcd
hid
hid_generic
[/shell]

Una vez hecho esto generamos el initrd:
[shell]
mkinitramfs -o /boot/initrd.img-$(uname -r)
update-grub
[/shell]

y reiniciamos

LWP will support https URLs if either Crypt::SSLeay or IO::Socket::SSL

Si estais cacharreando con los comandos y quereis hacer un GET o POST usando https os puede aparecer esto :

[shell]
$ GET https://www.hostingaldescubierto.com
LWP will support https URLs if either Crypt::SSLeay or IO::Socket::SSL
is installed. More information at
<http://search.cpan.org/dist/libwww-perl/README.SSL>.
[/shell]

y la forma de solucionarlo es instalando las liberías de perl que hacen falta:

[shell]
apt-get install libio-socket-ssl-perl libnet-ssleay-perl
[/shell]

Cómodo y sencillo 😀

[Asterisk] Tareas de mantenimiento

Revisando una de las maquinas asterisk he encontrado estos dos warnings en los mails que se envian a root desde las tareas de cron:

[shell]
/usr/bin/find: /var/lib/asterisk/sounds/tts: No such file or directory
[/shell]

En este caso es debido a que no existe el directorio /var/lib/asterisk/sounds/tts que es un directorio temporal que lo usa el software de ‘text to speech’. La alerta salta por que una de las tareas del cron intenta limpiar este directorio. Asi que para dejarlo fino, creamos el directorio y le damos permisos.

[shell]
mkdir /var/lib/asterisk/sounds/tts
chown asterisk:asterisk /var/lib/asterisk/sounds/tts
[/shell]

Por otro lado tengo esta alerta de hylafax:
[shell]
/etc/cron.daily/hylafax

gawk: /tmp/.xferfaxstats.RB8949/xferfax8946:331: fatal: cannot open file `/var/spool/hylafax/etc/xferfaxlog’ for reading (No such file or directory)
gawk: /tmp/.xferfaxstats.YY8962/xferfax8959:331: fatal: cannot open file `/var/spool/hylafax/etc/xferfaxlog’ for reading (No such file or directory)
gawk: /tmp/.recvstats.nd8975/xferfax8972:23: fatal: cannot open file `/var/spool/hylafax/etc/xferfaxlog’ for reading (No such file or directory)
gawk: /tmp/.recvstats.rx8987/xferfax8984:23: fatal: cannot open file `/var/spool/hylafax/etc/xferfaxlog’ for reading (No such file or directory)
gawk: /tmp/.faxcron.yC8940/faxawk8937:49: fatal: cannot open file `etc/xferfaxlog’ for reading (No such file or directory)
[/shell]

Se corresponde a al fichero de log de hylafax ( man hylafaxlog ) , lo vamos a crear y dar permisos:
[shell]
touch /var/spool/hylafax/etc/xferfaxlog
chown uucp:uucp /var/spool/hylafax/etc/xferfaxlog
[/shell]

Otra cosa mas …. 😀

Extraer números de teléfono

Hoy me he encontrado con un problema, tengo un fichero de excel en el que han mezclado en las columnas nombres y numeros de teléfono y necesito extraer sólo los números de teléfono.

Para extraerlos he usado awk , revisando para columna para ver si contiene dígitos o no, y mostarla en tal caso:

[shell]
cat telefonos.txt | awk ‘{ for ( col=1; col<=NF ; i++ ) if ($col ~ /[[:digit:]]/) print $col }’
[/shell]