20120221

uuencode mailx

Cuando se intenta enviar por correo un archivo adjunto desde linea de comando

$ uuencode $archivo $archivo | mailx -s "$asunto" $correo
Puede llegar el texto dentro del correo como

begin 660 archivo
M;65NV%J97,@=&5X=&\);7-J"FEN=')A;F5X=&5L"3,V,C*:6-M('1E>'1O
M(`DQ,SDR,`II8VT@=&5X=&\@"3$P-#(W"FEC;2!T97AT;R!496QE9D,S;FEC
M80DQ,C@U"FEC;2!T97AT;R!)=7-A8V5L;`DR,S$*:6-M('1E>'1O(%5N969O
M;@DV,@II8VT@=&5X=&\@5&5L8V5L"3@Q-S(*:6-M('1E>'1O(`DV.#8*:6-M
M('1E>'1O(`DX"FEC;2!I;G0@0V%N861A"3*:6-M(&EN="!%W1A9&]S(%5N
M:61OPDR,C`*96UA:6P@='AT"3*"E-H;W)T0V]D90DS-C(W"@IE;6%I;"!M
M=6QT:6UE9&EA"3(*26YTF%N97AT96P@;75L=&EM961I80DV,`II8VT@;75L
,=&EM961I80IP='8*
`
end
Para evitar eso emplear la bandera -m

$ uuencode $archivo $archivo | mailx -m -s "$asunto" $correo

20120220

vi :Terminal too wide

Al ejecutar vi en un servidor remoto obtengo el error
:Terminal too wide
Para solucionarlo ejecutar en consola
$ stty columns 180

imprimir log

Primera versión de función para controlar el nivel de debug

$ cat test.sh
DEBUG=2; #0 apagado
bicho ()
 {
  if [ $DEBUG -gt $1 ]
    then 
       t=0; c="";
       while [ $t -lt $1 ]
         do
           c="  $c";
           t=`expr $t + 1`;
         done
       echo "$c`date +%Y%m%d_%H%M%S` $2";
    fi
 }
 bicho 1 "nivel 1";
 bicho 2 "nivel 2";
 bicho 3 "nivel 3";

$ sh /tmp/test.sh 
  20120220_112448 nivel 1
    20120220_112448 nivel 2
Pone fecha, hora y por cada nivel pone un espacio en blanco

20120211

descarga cancion de soundcloud

Jugando nuevamente con soundcloud.com para descargar canciones, aun que no este habilitado el botón de download

Nuevo script, de parámetro recibe la url de una canción

#!/bin/bash

URL="$1";

MEDIA=`wget "$URL" -o /dev/null -O - | grep streamUrl | sed -e 's/.*"streamUrl"/"streamUrl"/' | cut -d, -f1 | cut -d\" -f4`;
NOM=`basename "$URL"`;
wget "$MEDIA" -o /dev/null -O "$NOM".mp3

Claro, esta versión 0 puede quedar en una sola linea.
O una versión 1 puede recibir mas parámetros