Recordatorio para tomar Pastillas con bash y notify-send

Hola gente.

El motivo de la entrada es cuando tienes que tomarte una partilla a cierta hora del día y hoy les voy a compatir una entrada para crear notificaciones que funcionen como recordatorios con notify-send en Ubuntu Mate 15.04.

ScreenshotRecordatorio

Primero que nada notify-send como lo dice “man” es un programa notificaciones de escritorio :D y esta es la manera como debe usarse

man_notify

 

Una de la opciones que nos permite usar notify-send es usar un icono para la notificación, en este caso yo quise personalizarlo un poco más descargando un png de un capsula de 32×32 pixeles y colocandola con los demás iconos de mi sistema. En mi caso yo lo descargue en la ruta ‘/usr/share/icons/gnome/32×32/status/’

$ sudo wget http://www.icon2s.com/wp-content/uploads/2013/09/medical-icon-Equipment-Capsule-Red.png

Una vez descargado el icono podemos probrar la notificación con el siguiente comando

$ notify-send -i /ruta/al/icono/medical-icon-Equipment-Capsule-Red.png Recordatorio "Tomar Pastilla"

Ahora prodemos crear un script en bash para que ejecute el comando

script_notificacion

Adjunto el script

#!/bin/bash

DISPLAY=:0.0 /usr/bin/notify-send -i /usr/share/icons/gnome/32×32/status/medical-icon-Equipment-Capsule-Red.png Recordatorio “Tomar Pastilla”

Es muy importante recalcar que se agrega la línea DISPLAY=:0.0 antes de la orden para ejecutar la notificación, ya que con eso estamos diciendole que sobre ese display que es nuestro escritorio debemos lanzar la notificación, ya que si no lo indicamos, cuando el script sea ejecutado por un cron no podrá visualizarse.

Al final debemos dar permisos de ejecución al script “chmod +x pastilla.sh"

Y agregamos el script al crontab para que se ejecute en los periodos de tiempo que programemos

$ contrab -e

Abrimos el crontab con nuestro editor favorito y agregamos la siguiente línea

 

0 10 * * * /bin/bash /home/usuario/scripts/notifications/pastilla.sh >/dev/null 2>&1

En este caso el script de notificación de ejecutará todos los días a las 10 a.m.

Espero que les sea útil. Saludos.
 

Netstat – Mostrar puertos abiertos y que servicios ocupan esos puertos

netstat_windows_nao

Ha pasado un rato sin escribir una entrada, pero aquí ando de nuevo.

En mi trabajo me ha tocado averiguar puertos de TCP o UDP ocupan ciertas aplicaciones o servicio y por eso me hice de la ayuda de la herramienta netstat. 

El comando debe ejecutado con permisos de sudo para poder observar el PID y el nombre del programa que corre sobre cierto puerto. El comando es el siguiente:

netstat -tupna

Donde cada parámetro que se le pasan netstat son:

-t: Lista todos los puertos TCP

-u: Lista todos los puertos UDP

-p: muestra el PID y nombre del programa al que pertenece cada socket

-n: Muestra direcciones numéricas en lugar de nombres de host.

-a: muestra el PID y nombre del programa al que pertenece cada socket

La salida del comando es la siguiente:

netstat

Podemos observar que hay un proceso de Java corriendo en el puerto tcp 25565 en estado “Listen” y sabiendo el PID podemos ejecutar un kill para tenerlo o buscar como dar de baja correctamente el servicio.

En el caso de Windows contamos con la herramienta netstat en cmd, pero los parametros cambian un poco.

El comando debe ser ejecutado en un cmd con permisos de Administrador. El comando es el siguiente.

netstat -naob > app_port.txt

Adicionalmente damos salida del comando hacia un archivo de texto para poder identificar el puerto o proceso más facilmente.

Donde cada parametro significa:

-n: muestra las direcciones y puertos de forma numérica

-a: Muestra todas las conexiones y puertos que se encuentran escuchando peticiones

-o: Muestra el ID del proceso asociado a la conexion

-b: Muestra el nombre del proceso.

La salida del comando es el siguiente

netstat_windows

Como se aprecia en la imagen, es la salida del comando en un archivo de texto y podemos hacer búsquedas fácilmente. También podemos ejecutar el comando si el parámetro “b” y la salida del comando sería la siguiente.

netstat_windows_nao

Sabiendo el PID del proceso podemos ejecutar “taskkill /PID <número de PID>” desde un cmd para terminal algún proceso.

Por el momento es todo,  espero que les pueda ser útil.

Calcular un Dirección de Red en base a una Dirección IP y la Mascara de Red

El día de ayer me encontraba repasando algunos conceptos básicos sobre direccionamiento IP, y me tope con el caso de calcular una dirección de red en base a una dirección IP y una mascara de red.

La operación es bastante sencilla, solo basta con convertir la dirección ip y la mascara a binario y comenzar a realizar un ‘AND’ bit por bit y convertir el resultado de binario a decimal y ta, tan !! Sabremos la dirección de red. :D

calculo de id de Red

 

La imagen superior muestra la operación de la dirección de red o id de la red.

En un principio usaba lápiz y papel, con el tiempo se adquiere destreza y puede realizarse como un calculo mental. Ha pasado un poco de tiempo se ha empolvado un poco esa destreza, pero me he hecho de otras habilidades bastante útiles. Así que mientras  desempolvaba esos conocimientos me dije a mi mismo, mi mismo hay que hacerlo con JavaScript. :D

En un principio comencé por declarar variables en javascript y asignar la dirección ip y la mascara, hacer un Split, convertir posición del arreglo en binario, completar ceros a la izquierda y realizar ‘AND’ bit por bit. Tengo que admitir que ese código era un chulada.

Me detuve a leer este post sobre Operadores sobre bits, lo cual me facilito muuuuuuucho la vida.

A continuación comparto el código:

Calculo Dirección de Red

var ip = '192.168.1.241';
var mask = '255.255.255.0';
var ipSplit = ip.split('.');
var maskSplit = mask.split('.');

/**
* La funcion determina la dirección de red en base a una direccion ip y una mascara de red
*
**/
function networkAddress(ipSplit, maskSplit){
var netAddress = new Array;
for(var i = 0 ;i < 4; i++){
netAddress.push(parseInt(ipSplit[i]) & parseInt(maskSplit[i]));
}
return netAddress;
};

networkAddress(ipSplit, maskSplit);

Basta cambiar las direcciones y ejecutarlo directamente sobre la consola de JavaScript de Chrome o su Browser favorito y ta, tan.

Resultado :D

Mi plan es hacer una extensión de Chrome y una función personalizada para Spreadsheet con GoogleAppScript que inicialmente calcule las direcciones de red y en un futuro pueda realizar direccionamiento VLSM, pero por cuestiones de sueño y trabajo no  pude hacerlo. Cuando este lista la subiré a la Chrome Web Store.

Espero que les sea de utilidad. Saludos.

Happy Hacking !

¿Por qué no dejar la contraseña por defecto de un intercable?

rafavg77:

Un post muy Interesante :D

Originalmente publicado en BrennQuin:

La contraseña para las señales de internet de INTERCABLE, no son tan difíciles de obtener.

Esta es una manera para conseguirla:

1.

Descarga: http://www.4shared.com/zip/vHJMz9Ulba/wirelessnetview.html

2.

Ejecútalo: Te mostrará una lista de las señales que tu tarjeta inalámbrica detecta. Debes elegir la que lleve por nombre intercable con mayor intensidad y dale doble clic.

wirelessnet

3.

En las opciones, busca la que diga mac – address:

macadres

Copia los digitos en un txt y elimina los guiones medios.

Ejemplo:

23-E4-FG-56-78-01       —->          23E4FG567801

4.

Después cambia las letras mayúsculas por minúsculas, antecede una m minúscula y al ultimo dígito sumale 1:

Ejemplo:

23E4FG567801   ——>    (m) 23e4fg56780 (1+1)    ———->     m23e4fg567802

Y ahí tienes la contraseña. Ahora, no funciona así con todas pero puede que la que detectes si sea así.

Últimos datos:

  • Si termina en 00, y no funciona sumarle 1 al último dígito…

Ver original 118 palabras más

Ubuntu Server + Crontab + Bash Script + Whatsapp (Yowsup)

Hoy es noche de dos por uno, así que les compartiré otro post el cual creo que es bastante interesante. Como comentaba en el post anterior he instalado ubuntu server en una computadora muy, muy vieja y he levantado uno que otro servicio, además de instalar y configurar Yowsup para utilizar Whatsapp desde línea de comandos.

Tengo un sevidor en casa y unos cuantos servicios forwardeados a través del Infinitum de la casa. Abrí una cuenta en Changeip.com y esta por configurar su cliente para DDNS cuando me dije a mi mismo, mi mismo y si te envías la dirección ip pública a tu cuenta de whatsapp y de esta manera siempre sabrás cual es la dirección ip publica de la casa :D. Esto despertó mi curiosidad de que es lo que podría hacer un Crontab + Bash script + Yowsup, claro notificaciones al por mayor.

A detalle escribí un script sencillo para resolver la ip publica de Infinitum de la casa y que la envié por un mensaje de Whatsapp desde las de la mañana hasta las 9 de la noche, por que después hay que hacer la meme :3 .

En concreto el Script es el siguiente:

Bash ScriptDonde cada cosa significa:

ruta=/home/user/yowsup/src #una variable que contiene la ruta hacia Yowsup-cli
log=/home/user/scripts/publicip #una variable que contiene la ruta hacia un log para el script
publicip=`curl ifconfig.me` #se resuelve la dirección ip pública y se guarda en una variable

 

python $ruta/yowsup-cli –send 5218117734568 “Hola Usuario, la Ip Publica es $publicip” –wait –config $ruta/whatsapp_config.txt #se ejecuta yowsup para el envío de mensajes con un texto predeterminado que incluirá la variale con la dirección ip publica

 

date=`date` #fehca
usu=`uname` #usuario
ini=`echo “Script ejecutado con éxito”` #texto predeterminado para escribir en el log

echo “$date – $usu – $ini, La Ip Plubica es $publicip” >> $log/historial_ip.log #se escribe en el log

Para ejecutar este script use un crontab, añadiendo la siguiente línea:

00 6-21 * * * /home/user/scripts/publicip/publicip.sh

 Donde especificamos que en todos los minutos 00 de entre las horas 6:00 am a 9:00 pm se ejecutará el script “publicip.sh” el cual ya se explico anteriormente. Para editar el crontab solo es necesario escribir “crontab -e”.

Y como relojito, a cada hora recibo un menaje con mi dirección Ip Pública :D 

Whatsapp DDNS

 

La verdad no es nada del otro mundo, las aplicaciones pueden ser infinitas, desde notificar ip pública, temperatura hasta mensajearte a ti mismo si eres un forever alone :D.

Cualquier duda y comentario es bien recibido. Saludos.

Usar Whatsapp desde línea de comandos con Yowsup

logo-bw-horizontal

Buenas noches a todos. Como es habitual tengo muchas cosas en la cabeza las cuales quiero compartir con ustedes por medio de este blog.

En los últimos días he jugado con una vieja computadora con ubuntu server, recordando los años de la maestría, configurar apache, mysql, fail2ban, iptables, usuarios,  roles y un poco de php. En la maestría estaba a cargo de un servidor que se encontraba dentro de la universidad y tenía puertos expuestos hacía internet, por ese tiempo estaba cursando las materias de Cisco CCNA, ya sabrán mi emisión de conocer el modelo OSI y TCP/IP, montar servidores, configuración de diferentes protocolos de enrutamiento, NAT, mapeo de puertos, montar un servidor en casa con una vpn para saltarme las restricciones firewall de la universidad, o un tunnel sobre SSH, en fin todo un ñoño en todo el sentido de la palabra :D .

Pero bueno, vamos al grano, el fin de este tutorial es la instalación y la muy sencilla configuración de Yowsup, el cual es una libreria en python para usar whatsapp desde una consola ya sea Linux o Mac (he probado en los dos y todo muy bien). En un principio no me gustaba Whatsapp existiendo otras mensajerías multiplataforma con clientes Web y de Escritorio como Line o Telegram. Pero encontré un post sobre como utilizar Whatsapp con Pidgin utilizando Yowsup y Whatsapp-Purple en Linux y no fue mucha la diferencia para replicar los pasos para Mac usando las mismas librerías y Pidgin e inclusive Adium :D. Les dijo en enlace a ese post Usar Whatsapp con Pidgin en Mac OSX.

Inicialmente se tiene que instalar python y las herramientas necesarias en caso de no contar con ellas, de lo contrario en ubuntu las podemos instalar fácilmente con:

# apt-get install python python-dateutil python-argparse

Es super necesario clonar el repositorio de Yowsup

git clone https://github.com/tgalal/yowsup.git

Ya descargado, lo descomprimimos con unzip master.zip y accedemos al directorio src/, dentro habrá un archivo llamado “config.example” podemos copiarlo a un archivo nuevo para configurarlo con nuestros datos de la siguiente manera # cp config.example whatsapp_config.txt. El nombre del archivo solo es una sugerencia.

Dentro del mismo directorio es necesario dar permisos de ejecución al arhcivo “yowsup-cli” de la siguiente manera

# chmod +x yowsup-cli

Editamos el archivo “whatsapp_config.txt” de la siguiente manera:

Configuración de Whatsapp-congif.txt

Donde cc es el código del país,  phone es el código de país más tu numero de celular (para el caso de  México es necesario poner el número 1 después del código de país como en la imagen, OJO solo México ), id es el IMEI de tu dispositivo, el campo password lo dejamos en blanco ya que no estamos registrados aun.

En mi caso cuento con otro número y equipo celular donde no se puede instalar Whatsapp. Utilizo ese número para registrarlo en Whatsapp.

Hasta este punto todo esta muy bien. Solicitaremos el código de activación por medio de un SMS con ayuda de yowsup-cli:

# sudo python ./yowsup-cli -c whatsapp_config.txt –requestcode sms

Cuando recibamos el código ejecutamos el siguiente comando

# sudo python ./yowsup-cli -c whatsapp_config.txt –register XXX-XXX

Sustituyendo las XXX por el código, es necesario poner el guión “-“. El resultado del comando será lo siguiente

Resultado

 

En la respuesta se observa el campo pw: es cual es el password de nuestra cuenta de whatsapp, se copia el password y se agrega al archivo whatsapp_config.txt en password= . De esta manera tendremos el archivo de configuración para autenticarnos en whatsapp para enviar y recibir mensajes.

Para envíar mensajes desde la terminal ejecutamos

#./yowsup-cli --send 5218118899112 "Test message" --wait --config whatsapp_config.txt

Esto debe ser ejecutado dentro de la carpeta /yowsup/src/, en el parametro –send se escribe el número de destinatario y entre comillas el mensaje.

Para recibir mensaje de whatsapp de ejecuta

# ./yowsup-cli --listen --autoack --keepalive --config yowsup-cli.config

Y pues sacarle jugo a Yowsup. Saludos.

 

Listar terminales tty en Mac

Oficial mente ya es martes 5 de Agosto :D

El motivo de esta publicación es para mostrar como podemos listar dispositivos tty y poder acceder a ellos, como por ejemplo un lector de rfid, el puerto serial de arduino (un puerto serial virtual), la consola de configuración de un Router o Switch Cisco. Bueno manos a la obra.

Para listar usaremos el comendo “ls” y lo usaremos para listar todos las tty en el sistema con “ls /dev/tty.*”  Obtendremos algo como la siguiente imagen.

Captura de pantalla 2014-08-05 00.14.50

Podemos redireccionar la salida de la tty a un screen con el comando “screnn /dev/tty.laquevamosaleer 2400″. En este caso escribí 2400 ya que es el baud rate para poder leer correctamente la salida serial.

Captura de pantalla 2014-08-05 00.19.53

En este caso el dispositivo que estoy leyendo es un lector de RFID y la salida es la siguiente

Captura de pantalla 2014-08-05 00.21.31

Les comparto un vídeo mío accediendo al puerto serial de un router Cisco para ver su Banner Mod :D

Saludos.