Enviar y reicibir notificaciones de Telegram desde la línea de comandos

Utilizando tg, podemos enviar y recibir mensajes de nuestros contactos en Telegram, incluyéndonos a nosotros mismos, desde el terminal. Envíos programados Combinándolo con expect, conseguiremos una forma sencilla de programar notificaciones. He aquí un pequeño ejemplo: #!/usr/bin/env bash function tg { # First argument, if any, must be the receiver local to="$1" local msg="" local cmd="" if [ $# -gt 1 ]; then shift 1 msg="$@" else while read line; do if [ -z "$msg" ]; then msg=$line else msg="$msg\n$line" fi done if [ -z "$to" ]; then to=$(awk '{print $1}' <<< $msg) msg=$(awk '{$1="";print $0}' <<< $msg) fi fi if [[ $msg =~ "\n" ]]; then file=$(mktemp) echo -e "$msg" > $file cmd="send_text $to $file" else cmd="msg $to $msg" fi #echo $cmd expect -c " log_user 0 match_max 100000 spawn /path/to/telegram -k /path/to/tg-server.pub expect \"User \" send -- \"$cmd\r\" expect \"Sent\" send \"quit\" " } tg $@ Algunos ejemplos de uso: ...

May 31, 2014 · 3 min · 432 palabras · Nacho Cano

Obteniendo la IP pública, la IP privada y la dirección MAC en Bash

En los scripts que escribimos, a menudo, es necesario conocer la IP pública de nuestra red, o la IP privada y la dirección MAC de una interfaz de red. Con el comando ifconfig podemos conocer la información de las interfaces de red: $ ifconfig eth0 Link encap:Ethernet direcciónHW 00:11:22:33:44:55 Direc. inet:192.168.0.30 Difus.:192.168.0.255 Másc:255.255.255.0 Dirección inet6: fe80::203:dff:fe3c:f419/64 Alcance:Enlace ACTIVO DIFUSI–N FUNCIONANDO MULTICAST MTU:1500 Métrica:1 Paquetes RX:1627 errores:0 perdidos:0 overruns:0 frame:0 Paquetes TX:1067 errores:0 perdidos:0 overruns:0 carrier:0 colisiones:0 long.colaTX:1000 Bytes RX:560137 (560.1 KB) TX bytes:235094 (235.0 KB) Interrupción:19 Dirección base: 0xc800 eth1 Link encap:Ethernet direcciónHW 00:11:22:33:44:66 DIFUSI–N MULTICAST MTU:1500 Métrica:1 Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0 Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0 colisiones:0 long.colaTX:1000 Bytes RX:0 (0.0 B) TX bytes:0 (0.0 B) Interrupción:21 Dirección base: 0x8000 Memoria:ffcfe000-ffcfefff lo Link encap:Bucle local Direc. inet:127.0.0.1 Másc:255.0.0.0 Dirección inet6: ::1/128 Alcance:Anfitrión ACTIVO BUCLE FUNCIONANDO MTU:16436 Métrica:1 Paquetes RX:3299 errores:0 perdidos:0 overruns:0 frame:0 Paquetes TX:3299 errores:0 perdidos:0 overruns:0 carrier:0 colisiones:0 long.colaTX:0 Bytes RX:355696 (355.6 KB) TX bytes:355696 (355.6 KB) Sin embargo, si queremos utilizar el dato en concreto—la IP privada o la dirección MAC—, necesitaremos trabajar un poco la salida que muestra ifconfig. ...

August 14, 2011 · 5 min · 1051 palabras · Nacho Cano

urlencode y urldecode

Los siguientes caracteres son los únicos que se pueden utilizar en una URL: [a-zA-Z0-9-._~] El resto, se deben codificar usando el prefijo % seguido del valor ASCII hexadecimal del carácter. Por ejemplo: ( = %28 ) = %29 / = %2F + = %2B ... Para codificar la URL podemos utilizar la función uri_escape del módulo URI de Perl. alias urlenc='furlenc() { perl -MURI::Escape -e "print uri_escape(\"$1\").\"\n\";"; }; furlenc' $ urlenc http://www.google.com http%3A%2F%2Fwww.google.com Para la decodificación de la URL, podemos hacer uso de sed: ...

March 6, 2011 · 1 min · 102 palabras · Nacho Cano

html2pdf = html2ps + ps2pdf

Un buen comando para convertir una web a PDF, idóneo para sitios con documentación pero que ésta sólo está disponible online. Por ejemplo: $ html2ps -W b http://www.vala-project.org/doc/vala/ | ps2pdf - out.pdf Con la opción -W b le decimos a html2ps que siga sólo los enlaces que están en el mismo directorio, o a partir de él, respecto a la ruta proporcionada. Fuente: techpin.com Podemos crear un alias que reciba dos parámetros, la URL y el nombre que queremos ponerle al PDF: ...

February 28, 2011 · 1 min · 100 palabras · Nacho Cano

Memento en Bash

No me acuerdo de olvidarte. Si lo primero que haces nada más iniciar una sesión es abrir el terminal. Varias ventanas, varias pestañas. screen, terminator o byobu. Es posible que, alguna vez, se te haya pasado por la cabeza que sería interesante guardar una nota sobre algo que estamos haciendo, algo que quisiéramos recordar más tarde, algo que quisiéramos no olvidar, algo que está relacionado con el directorio en el que estamos. ...

September 26, 2010 · 3 min · 434 palabras · Nacho Cano