lunes, 11 de marzo de 2019

Conocer el nombre del kernel en uso

Los sistemas operativos de tipo Unix-like suelen disponer de mecanismos para averiguar qué kernel es el que está en uso. Esto es útil para, por ejemplo, restringir el uso de un script a un tipo de kernel en concreto.
El siguiente comando servirá para detectar el tipo de kernel en uso, y está diponible en la amplia mayoría de sistemas Unix-like:
$ uname -s
Linux
Para el caso de FreeBSD:
$ uname -s
FreeBSD
Y para el caso de MacOS:
$ uname -s
Darwin
Y un ejemplo de uso prodría ser el siguiente:
#!/usr/bin/env bash

if [ `uname -s` = "Darwin" ]; then
  echo "Continuar con el script en este Mac"
fi

jueves, 7 de marzo de 2019

Invertir cadena de texto con Python

Python dispone de mecanismos internos para invertir una cadena de texto. Es decir, se invierte el orden de los caracteres tal que se imprime primero el último, después el penúltimo y así hasta el primero.
Siendo cadena un String:
cadena = 'Me gusta mucho el blog www.administracion-linux.com'
La forma para invertir la cadena de texto es la siguiente:
cadena[::-1]
'moc.xunil-noicartsinimda.www golb le ohcum atsug eM'
Si lo que se desea en realidad es invertir el texto de cada palabra, pero que estas se impriman en su orden natural (palabra1 palabra2 … palabraN), se puede realizar lo siguiente:
for item in cadena.split(' '):
  print item[::-1],
Obteniendo como resultado:
eM atsug ohcum le golb moc.xunil-noicartsinimda.www

lunes, 4 de marzo de 2019

Cambiar servidor de hora en Ubuntu 18.04

En una entrada anterior se explicó cómo establecer el timezone en Ubuntu 18.04. Una personalización relacionada con el timezone es la de cambiar el servidor NTP a partir del cual nos sincronizamos.
En Ubuntu 18.04, el encargado de gestionar la sincronización horaria es el demonio systemd-timesyncd. Por defecto, este demonio sincroniza la hora del sistema mediante los servidores de hora de Ubuntu (golem.ubuntu.com). Si lanzamos un tcpdump y esperamos un poco, veremos tráfico de red por el puerto 123 UDP, que es el relacionado con el protocolo NTP:
$ sudo tcpdump port 123
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
21:32:36.048941 IP us18.home.44687 > golem.canonical.com.ntp: NTPv4, Client, length 48
21:32:36.093463 IP golem.canonical.com.ntp > us18.home.44687: NTPv4, Server, length 48