lunes, 25 de junio de 2018

Emacs: Encriptar archivos

Si necesitas seguridad adicional en tus archivos texto o código fuente, puedes usar Emacs como una herramienta de encriptado de archivos de manera muy fácil, para esto tenemos 2 caminos:

- Usando org-mode, lo archivos .org se pueden encriptar fácilmente añadiendo la extensión .gpg y luego una clave cuando emacs nos solicite la clave.

- Sin org-mode, al archivo que quieres encriptar debes añadirle en su primera linea los siguiente:
# -*- mode:org; epa-file-encrypt-to: ("me@mydomain.com") -*-

Luego al guardarlo le añadimos la extensión .gpg . Luego de esto el sistema lo procesara como un archivo org-mode encriptado y pedirá la clave.

PD: me@mydomain.com: debe ser el propietario de la encriptación, pongan allí su correo.


Emacs: Hacer consultas a base de datos en org-mode

El modo Org-mode de emacs es una herramienta de productividad increíble. Bajo esta interface es posible realizar consultas a base de datos, el resultado de estas pueden mostrarse inline en el mismo archivo .org. Para esto debemos de configurar algunas cosas pequeñas en Emacs.

1. Vamos a modificar nuestro archivo .emacs y añadir los lenguajes soportados
(org-babel-do-load-languages
'org-babel-load-languages
'((sql . t)))
;; add additional languages with '((language . t)))

(org-babel-do-load-languages
'org-babel-load-languages
'(
(emacs-lisp . t)
(org . t)
(sh . t)
(C . t)
(python . t)
(gnuplot . t)
(octave . t)
(R . t)
(dot . t)
(awk . t)
(sql . t)
))

2. Para poder conectarnos a una BD nuestro archivo .org tendremos que añadir algunos tags:
#+name: result-list
#+header: :engine mysql
#+header: :dbhost localhost
#+header: :dbuser mydbuser
#+header: :dbpassword mydbpass
#+header: :database mydatabase
#+begin_src sql :exports results
select * from table1 order by 1 desc;
#+end_src

#+RESULTS: result-list

Como observamos debemos de cambiar los valores :
engine: el motor de base de datos, en nuestro caso usamos mysql
dbhost: el host de la base de datos, en nuestro caso localhost o 127.0.0.1
dbuser: el usuario de base de datos
dbpass: la clave del usuario de base de datos
database: la base de datos a la que nos conectamos
name: indica el nombre del bloque de consulta, si observan en RESULT hay uno con el mismo nombre, quiere decir que el resultado de ejecutar el SQL se verá en el bloque RESULT
begin_src: esta es la consulta SQL que ejecutaremos

Para ejecutar la consulta nos ubicamos dentro del bloque del código y presionamos Ctrl+c Ctrl+c.

Mayor detalle en : https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-sql.html

Linux: Comparar 2 archivos binarios

En esta ocasión vamos a verificar que un archivo es igual a otro, pero vamos a compara archivos binarios.

En mi caso he copiado un archivo ISO de un disco duro extorno a la PC y quiero verificar si se ha copiado correctamente. Para esto usamos diff <archivo1> <archivo2>

# diff /media/usb/archivo.iso ./archivo.iso

Si diff no envía mensaje de diferencia el archivo es idéntico, en caso contrario son distintos.


Linux: Crear un USB booteable

En esta ocasión vamos a crear un USB booteable partiendo de una ISO, esto sobre nuestro querido GNU/Linux.

1. Primero vamos a detectar el USB, para esto insertamos el USB en la PC y en consola ejecutamos
# sudo fdisk -l 
Nos aparecerá la unidad añadida, en mi caso es una unidad de 8G y formato FAT32


Como observamos nuestro dispositivo es /dev/sdb1, ahora desmontamos el dispositivo para poder iniciar el copiado.
# umount /dev/sdb1

2. Comenzamos a realizar la copia de la imagen ISO usando el comando dd, uno de los parámetros principales serán if (archivo de entrada o ISO) y of (archivo de salida o unidad USB)
# sudo dd bs=4M if=TuArchivo.iso of=/dev/sdb
Si observan el valor de of no esta completo /dev/sdb , le falta el valor 1 (/dev/sdb1) esto indica que estamos apuntando a toda la unidad y no a una partición de esta.

Ahora debemos esperar un poco hasta que se termine el copiado del archivo.

PD. Para crear un USB booteable con Windows 10 es necesario usar WoeUSB.

Configure Grafana and Slack

To configure Grafana to send alerts to Slack, you need to set up a notification channel in Grafana and configure it to use the Slack integra...