Lo tiro acá para toda la posteridad. Un pequeñísimo script para convertir el timestamping de syslog (la cantidad de segundos transcurridos desde que booteó el sistema) a hora local, cosa que a priori parece trivial pero que a la tercera vez que tenés que usar ya te cansa la cabeza.

 

Un poco de bash scripting. Convertir de Unix timestamping en el syslog de Linux a Hora en formato human readable.

Un poco de bash scripting. Convertir de Unix timestamping en el syslog de Linux a Hora en formato human readable.

 

Este script no es mío, lo robé de algún lado hace años y desde entonces me acompaña a todas partes:

#!/bin/bash

if [ "$#" != "1" ] ; then
echo "Usage: `basename $0` time-offset-integer"
exit 1
elif [ "`echo $1 | sed 's/[0-9]//g'`" != "" ] ; then
echo "Usage: `basename $0` time-offset-integer"
exit 1
fi

N=`date +'%s'`
U=`FS="." /usr/bin/awk '{print $1;}' < /proc/uptime | sed 's/[^0-9].*//'`
TS=`expr $N - $U + $1`
T=`date --date="@$TS"`

echo "$1 seconds after boot was about $T."

 

Como se usa.

A la típica salida del comando dmesg, o /var/log/syslog por ejemplo:

[511684.749771] Process accounting resumed
[511684.842941] systemd[1]: apt-daily-upgrade.timer: Adding 33min 25.167508s random time.
You have new mail in /var/mail/root

 

 

Ejecutás el script anterior, que en este caso llamé syslogtohuman.sh:

~# ./syslogtohuman.sh 511684
511684 seconds after boot was about Thu Aug 16 11:20:13 -03 2018.

 

Y así sabés que esa entrada en el syslog en particular aproximadamente en esa fecha y a esa hora: Thu Aug 16 11:20:13 -03 2018

 

De nada.

 

Va una no tan obvia y que me llevó su buen rato investigar: Como enviar (y recibir también, no sean pelotudos, es tráfico bi-direccional) todo el tráfico que genera tu iPhone o iPad -o cualquier otro dispositivo que exista en el futuro y corra iOS- por un tunnel SSH para que aparezca como tráfico generado por el servidor donde corre el SSH Server en Linux. Lo que también se conoce como proxy tipo socks.

 

Ya en el pasado le he dedicado diversos artículos a esta técnica que usé y uso hasta varias veces por semana según se me va presentando cada escenario, por ejemplo:

Si no están familiarizados con las tecnologías y protocolos implicados puede que quieran ir a leer primero alguno de los artículos anteriores.

 

Configurando un tunnel SSH que puedas utilizar luego desde tu iphone o ipad para acceder a ese servicio de streaming bloqueado en tu país, ciudad o empresa o como cagarte en todos los firewalls poniendo el servicio SSH de tu servidor a escuchar en el puerto 53 TCP.

Configurando un tunnel SSH que puedas utilizar luego desde tu iphone o ipad para acceder a ese servicio de streaming bloqueado en tu país, ciudad o empresa o como cagarte en todos los firewalls poniendo el servicio SSH de tu servidor a escuchar en el puerto 53 TCP.

 

Ingredientes:

  1. Un servidor corriendo Linux en algún lado.
  2. Un web server en algún lado donde se pueda escribir un archivo. No es estrictamente necesario.
  3. Una PC con Windows o Linux que hará las veces de socks proxy y puede ser el mismo servidor que corre el Linux
  4. Putty, si la PC socks proxy corre Windows. Bajalo de acá.

Continúa leyendo

 

Esta que sigue me pasó hace un rato y no es la primera vez lamentablemente: el log de <algo> te llena el disco de mierdas y se te rompe  alguna otra cosa que estaba en producción y el mundo se desploma por una fracción de hora hasta que reaccionás y todo vuelve a la normalidad.

Unas veces la sacás barata y no pasa de un susto, otras se te corrompe el sistema de archivos de una VM o el log de una base de datos o no te queda otra que restaurar ese <algo> que no funciona desde el backup que por suerte tenías.

Por que si estás a cargo de un sistema cualquiera y no tenés nada que te avise que se te llenó un disco, un backup seguramente tenías, verdad?

 

Foto de un sysadmin real pensando que hacer después de que se le llenó un disco, borró el log y ahora no le funciona nada.

Foto de un sysadmin real pensando que hacer después de que se le llenó un disco, borró el log y ahora no le funciona nada.

 

Bueno, acá va: esta es la forma rápida de devolver a la vida, de resucitar un Linux cuando dejó de funcionar por que se quedó sin espacio en tal o cual disco, usualmente la partición raíz, por que si no tenés nada que te avise que se te llenó un disco, ni tenés backup, tampoco tenés compartimentado el disco en particiones, verdad?

Continúa leyendo

 

Otro título sugerido: como hacer que los nombres de archivo y directorio de Windows sean compatibles con Linux con un único comando.

 

Va otro mini-micro-nano TIP para mi cada vez mas pequeña audiencia como así también para cuando en el futuro tenga que recurrir nuevamente al comando este y no me acuerde como se usa:

Detox: el único y último programa que vas a necesitar para reemplazar espacios por guiones bajos, vocales con tilde por vocales limpias, eliminar parentesis y un largo etcétera, pasando desde cualquier char que no sea UTF-8 compatible y rompa o te obligue a salvar la línea de comandos de linux con una contrabarra a un archivo con nombre limpio que luego podés parsear sin inconvenientes.

Como bien dice la descripción del comando en el manual:

DESCRIPTION
The detox utility renames files to make them easier to work with. It removes spaces and other such annoyances. It’ll also translate or cleanup Latin-1 (ISO 8859-1) characters encoded in 8-bit ASCII, Unicode characters encoded in UTF-8, and CGI escaped characters.

O la salida del comando si lo ejecutás sin parámetros adicionales:

usage: detox [-hLnrvV] [-f configfile] [-s sequence] [--dry-run] [--special]
file [file ...]

 

detox - corregir recursivamente o en masa nombres de archivo eliminando espacios y otros caracteres molestos para hacerlos compatibles con Linux

detox – corregir recursivamente o en masa nombres de archivo eliminando espacios y otros caracteres molestos para hacerlos compatibles con Linux

 

Como se usa:

Continúa leyendo