Mostrando entradas con la etiqueta personal. Mostrar todas las entradas
Mostrando entradas con la etiqueta personal. Mostrar todas las entradas

domingo, 8 de mayo de 2022

Me mudo a https://rubenhortas.github.io

Después de todo el tiempo sin publicar en este blog, creo que es hora de abandonarlo definitivamente, mudarse y empezar de cero.


He decidido mudar el blog a github: https://rubenhortas.github.io y realizar algunos cambios. El cambio más notable será el idioma, que pasará de castellano a inglés. Respecto a la temática y la frecuencia... Seguiré publicando con la frecuencia que pueda y sobre algún tema que me apetezca y también migraré los artículos de este blog que creo que merezcan la pena tener a mano.


No cerraré este blog por dejarlo a modo de histórico y porque algunos artículos se encuentran referenciados desde otros sitios en internet ;)


Nos vemos en la nueva dirección!

domingo, 15 de mayo de 2016

CleanTweetsGood

Os presento a CleanTweetsGood!

Qué es?

CleanTweetsGood es un programa que permite eliminar tweets de un usuario a partir de su histórico de twitter. Los tweets se pueden eliminar de dos formas:

  1. Por contenido: Se eliminan los tweets que contengan una o varias palabras previamente añadidas a una lista negra.
  2. Por ID: Se eliminan los tweets a partir de su ID.

Qué *NO* es?

No es un panic button ni una solución mágica.

Aunque los tweets se borren del timeline, los cambios en el timeline tardan un tiempo en verse reflejados (se puede comprobar descargando el historial de nuevo).

Los tweets borrados del timeline pueden quedar almacenados en sitios fuera del alcance de esta aplicación: Los servidores de twitter, capturas de pantalla de otros usuarios... Cuando se borran los mensajes directos *no* se borran de la cuenta del otro usuario.

Por qué?

Porque hay países donde las personas pueden acabar en la cárcel por tuitear.

Porque las empresas y los medios viven obsesionados con las redes sociales y algún tweet del pasado sacado de contexto puede hacerte tristemente famoso o puede hacer que pierdas una posible oportunidad de trabajo o un trabajo.

Instalación y uso

La aplicación la podéis encontrar y descargar en mi github: https://github.com/rubenhortas/cleantweetsgood

La información sobre la instalación y el uso la podéis encontrar en el fichero LEEME.

Enjoy!

viernes, 24 de julio de 2015

Configurar las brightness keys en Kali Linux

Recientemente he tenido que cambiar de portátil, y esta vez (y por el momento) me he decidido por instalarle Kali Linux. La verdad es que me sorprendió ver que funcionaba *casi* todo recién instalda Kali, pero una de las cosas que no funcionaban eran las teclas de brillo o iluminación de pantalla (también conocidas como screen brightness keys o brightness buttons). Después de darle un par de vueltas, encontré dos formas fáciles de solucionarlo, la mía y una un poco mejor ;)

La primera forma que encontré de solucionarlo -la mía- fue modificar directamente los valores del gnome settings daemon power a través de un pequeño script. El script lo he colgado en mi github https://github.com/rubenhortas/gnome_brightness_keys y lo podéis utilizar libremente.

Para utilizarlo sólo hay que guardarlo en un directorio en el que tenga permisos de ejecución, y asignar los comandos "brightnessControl up" (para aumentar el brillo) y "brightnessControl down" (para bajar el brillo) a las teclas a través del propio menú de gnome (Aplicaciones > Herramientas del sistema > Preferencias > Configuración del sistema > Teclado > Atajos > Combinación personal).

Haciéndolo de esta forma las teclas van a funcionar, pero no nos va a salir el indicador de brillo en la pantalla cada vez que cambiemos el brillo.

La solución que encontré para que las teclas funcionen y muestre el indicador de cambio de brillo en pantalla ha sido instalar xdotool y asignar loscomandos "xdotool key XF86MonBrightnessUp" (para subir el brillo) y "xdotool key XF86MonBrightnessDown" (para bajar el brillo) a las teclas.

Con cualquiera de estas dos soluciones tendremos las teclas de brillo funcionando.

Enjoy! ;)

lunes, 8 de diciembre de 2014

python 101 para desarrolladores

Coruña Developers (@CorunaDev) es una iniciativa que acaba de surgir en A Coruña y que, en resumidas cuentas, pretende ser un punto de encuentro para desarrolladores. Un lugar donde poder conversar, debatir y sobretodo aprender de otros desarrolladores con más experiencia en otras áreas.

El viernes pasado tuve la oportunidad de inaugurar las charlas con "Python 101 para desarrolladores". La charla es una introducción a Python, pasando por alto cosas básicas, haciendo hincapié, sobretodo, en las diferencias, ventajas y desventajas que presenta Python respecto a otros lenguajes de programación. Dejando para el final ciertas anotaciones que consideré necesarias, aunque no pude profundizar en ellas por la extensión de los temas a los que hacen referencia.

Desde aquí quiero volver a aprovechar para agradecerles a los chicos de Coruña Developers la oportunidad y la experiencia (también el trato recibido), y a los asistentes el interés y la curiosidad demostrada. La verdad es que para mi ha sido una experiencia muy positiva, y espero que resultase productiva para los asistentes.

Aunque sé que para los no asistentes las diapositivas y los ejemplos pueden resultar escuetos, por consenso con la organización y los asistentes, he decidido colgar el material utilizado (diapositivas y ejemplos de código). Mientras se crean los servicios que servirán de puntos comunes para alojar todo el material que vaya generando el proyecto Coruña Developers, he subido las diapositivas y los ejemplos utilizados a mi cuenta en github.

Para los no asistentes, esta documentación podrá resultar escueta por encontrarse fuera de contexto. Ya que simplemente se trata de material de apoyo (notas breves y ejemplos simples) para la charla. Material que sirve para dotar de estructura, consistencia y un hilo argumentativo la narración. Un material que, por su formato, deja fuera ciertos temas y matices y comentados durante la charla. De todas formas, puede que aún así resulte de interés.

Personalmente, y después de hablar con los organizadores sobre las ideas que tienen, creo que es una iniciativa muy interesante. Estoy seguro de que estaré en futuras ocasiones, en principio como asistente, pero quien sabe! Quizás en un futuro tenga la oportunidad de repetir como ponente ;)

Podéis seguir las actividades de Coruña Developers en su página de facebook: https://www.facebook.com/groups/CorunaDevelopers y/o en su twitter: @CorunaDev

Nos veremos en futuras ediciones!

Python 101 para desarrolladores (Material)

martes, 26 de agosto de 2014

iceweasel, tor y dns leaks

Para los que no conozcáis iceweasel, he de decir que es un fork totalmente libre de firefox, y el navegador predeterminado de Debian. De cualquier forma, es mi navegador habitual.

Todo empezó el pasado domingo, cuando me decidía a bajarme el último capítulo de una de esas series extranjeras que sigo y que aquí ni se estrenaron, ni se estrenan, ni se las espera. La página no estaba disponible. Como no tenía la IP de la página, comprobé su estado a través del servicio: downforeveryoneorjustme.com.

Era solo yo. Entonces me di cuenta de que mi ISP había decidido volver a bloquear ciertas páginas de descargas. Páginas de esas que tan poco les gusta a unos y que tan útiles nos resultan a otros.

Esto me enfadó bastante. Por una parte, por qué están bloqueadas otra vez? Hay una sentencia judicial reciente que les obliga a levantar el bloqueo. Por otra parte, qué anduve haciendo con mis DNS y por qué me dejé puestas las que usa el ISP y no las OpenDNS? (Seguro que ya no eran horas...) En ese momento pensé que tal y como están las cosas (gracias a un buen puñado de ministros inútiles) sería mejor bajar el torrent a través de TOR (siempre cifrando el tráfico del cliente de descargas, claro). Pero... Tampoco resolvía!

WTF? AYFKM??? DNS LEAKS?!?!?!

Cambio las DNS y me dispongo a comprobar si hay fugas con wireshark. Efectivamente, unas fugas de DNS tan grandes que no sabía si tendría que pagarles el IBI. D'OH!!!.

Inmediatamente se me vino a la cabeza una mala configuración de firefox/bug que provocaba estas fugas (allá por el 2012...), y fui directo al about:config a comprobarlo, por si era heredada.

Después de cambiar la variable network.websocket.enabled y ponerla a false, me vuelvo a wireshark, a ver que tal están las cosas ahora y... Sigo con fugas! D'OH!!! (2).

Pero ya que estamos aquí, y por aquello de no dar dos viajes, vamos a rebuscar un poco en las opciones relacionadas con las DNS...

network.proxy.socks_remote_dns = false? Vamos a ponerla a true... A ver qué dice ahora wireshark...

Efectivamente, era eso. Y yo dejando mi rastro de miguitas de DNS por TOR :'(

Gran lección aprendida: Antes de salir de casa hay que hacer siempre los deberes.

Así que ya sabéis, cuidado con esas fugas!

*Nota: Algunas extensiones pueden revelar nuestra IP aún mientras estamos utilizando TOR o i2p. Haced los deberes!

*Nota 2: Los enlaces están apuntando a meneame.net y wikipedia intencionadamente. No pienso enlazar a ningún medio de AEDE.

Enjoy! ;)

domingo, 1 de diciembre de 2013

configurar la isight y el micrófono de un macbook en debian



La verdad es que yo no era de los que ponían el trozo de cinta tapando la cámara. Como no la necesitaba, directamente no le instalaba el driver. Y el micrófono, siempre en mute. Pero por causalidades de la vida, he tenido que configurar las dos cosas. Así que, aquí dejo un howto rapidito ;)




iSight

Para configurar la iSight, después de leerme unos cuantos post, he llegado a este: http://askubuntu.com/questions/100527/how-to-fix-webcam-on-macbook-pro-5-5, que funciona perfectamente. Y por eso he decidido copiarlo, reproducirlo, ampliarlo, traducirlo, adaptarlo y referenciarlo aquí ;)

1) Encontrar el driver para iSight de Mac OS X

  • Si tenemos OS X instalado
    Con la partición de OS X montada (en este ejemplo en /mnt/osx), copiarlo a algún directorio del /home (por ejemplo) donde queramos trabajar
    $ sudo /mnt/macosx/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport /home/rubenhortas/descargas/isight
  • Si no tenemos OS X instalado
    Averiguar de qué modelo de macbook se trata:
    $ sudo dmidecode | grep -i "product name"
    Una búsqueda rápida en google del tipo "isight driver macbook " nos devolverá unos cuantos resultados. Yo he usado este driver en un macbook 4,1: dl.getdropbox.com/u/332246/AppleUSBVideoSupport . Aunque en principio es para un macbook 5,5, en el 4,1 funciona perfectamente.

2) Instalar isight-firmware-tools
Este paquete contiene herramientas para extraer el firmware del driver de la iSight, instalar y configurar todo lo necesario para configurar el firmware cuando sea necesario.
$ sudo aptitude install isight-firmware-tools

2) Copiar el driver a /lib/firmware
$ sudo cp /home/rubenhortas/descargas/isight/AppleUSBVideoSupport /lib/firmware/

3) Instalar el firmware:
$ sudo ift-extract -a /lib/firmware/AppleUSBVideoSupport

4) Añadir el módulo a acpi-support
$ sudo vim /etc/default/acpi-support
Buscar "MODULES" y transforarlo en: MODULES="isight_usb"
*En mi caso no estaba esa sección, así que la añadí al final.

5) Averiguar el modelo de la iSight
$ lsusb | grep -Po '(?<=:)(\d+)(?=.*iSight)'
Esto nos devolverá el ID de la iSight. Hay que recordar/apuntar el número. En mi caso es la 8300.

6) Añadir las reglas udev
$ sudo vim /etc/udev/rules.d/isight.rules
Añadir:
ACTION=="add", SYSFS{idVendor}=="05ac", SYSFS{idProduct}=="8300", RUN+="/usr/lib/udev/ift-load --firmware /lib/firmware/isight.fw"
*Reemplazar "8300" por el ID de la iSight que corresponda.

7) Apagar

8) Encender y reiniciar

9) Probar
Ya se puede probar la cámara con skype, cheese, ...

Micrófono (con alsa)

Recuerdo que hace años, cuando instalé debian gnu/linux en esta máquina, los canales estaban desactivados ("muted"), por defecto. La verdad es que no sé si a día de hoy sigue siendo el caso. Pero, por si caso, explico los canales que hay que activar para tener el micrófono funcionando.

1) Ejecutar alsamixer
$ alsamixer

2) Activar el sonido de "Mic"
Seleccionar "Mic" y activar el sonido (si es necesario) pulsando la tecla 'm':

3) Activar el sonido de los dispositvos de captura
Pulsar F4 para ver los dispositivos de captura "Capture", y activarles el sonido (tecla 'm'):


*"Mic Boost" amplía el nivel de captura del micrófono. Si está activado y muy alto, producirá ruídos molestos para la persona que nos escuche.

*Sin tener activado el canal "Digital" no se escuchará el micrófono. Tenerlo muy alto pruducirá ruídos molestos para la persona que nos escuche.

4) Pruebas
Para probar el micrófono podemos recurrir a cualquier programa, por ejemplo skype o hangouts, o utilizar las herramientas de alsa.

Utilizando las herramientas de alsa:

  • Gabar el sonido a un fichero wav:
    $ arecord -f cd -D hw:0 -d 10 test.wav

    *Si esto no funciona, hay que probar con la interfaz de PCM "plughw"
    $ arecord -f cd -D plughw:0 -d 10 test.wav
  • Reproducir la grabación:
    $ aplay test.wav
    *Borrar el fichero al finalizar


Ahora que están la iSight y el micrófono funcionando, por seguridad, es recomendable tapar la cámara con un trozo de cinta adhesiva y desactivar el sonido del micrófono. Nunca se sabe qué puede pasar >;).

Enjoy!

Fuentes:

martes, 29 de octubre de 2013

algunos códigos python útiles para CTFs

Cifrados por sustitución simple monoalfabético

El cifrado por sustitución es un método en el que unidades de texto plano son sustituidas con texto cifrado siguiendo un sistema regular. En el caso del sistema cifrado de sustitución simple, la unidad de texto plano es una letra. Es decir, un caracter del texto original es sustituido por otro del alfabeto de texto cifrado. Los ejemplos más caracteristicos de este sistema de cifrado son los cifrados César, ROT13 o Dvorak. El objetivo aquí es deducir de qué sistema se trata y la transposición de caráctes, es decir, qué caracteres se corresponden entre el texto plano y el alfabeto de cifrado. Una vez averiguado, podemos automatizar la traducción con la función maketrans del módulo string:


text = 'bpql bp rk bgbjmil ab zfcoxal zbpxo, rkl ab ilp jbqlalp jxp zlklzfalp ab zfcoxal mlo prpqfqrzflk pfjmib jlklxicxybqfzl'
trans = string.maketrans('xyzabcdefghijklmnopqrstuvw', 'abcdefghijklmnopqrstuvwxyz')
print text.translate(trans)


Cadenas escritas al revés

Si estamos vagos, o no queremos leer hacia el sentido contrario al habitual, podemos obtener el resultado utilizando el tercer argumento de las extended slices de python:

>>> 'sever la atircse anedac'[::-1]
'cadena escrita al reves'


Fuerza bruta

A veces nos es últil tener un array que se autorellene con combinaciones para solucionar alguna prueba que requiera de fuerza bruta (bruteforce o bruteforcing). Para ello dejo en mi github un código de demostración de cómo programar esto en python: bruteforceBytearray. Yo he programado un ejemplo con un bytearray, y he dejado una función para imprimir por pantalla cómo se va rellenando el array. Es un ejemplo y siempre se puede adaptar a las necesidades personales ;)

Enjoy!

Fuentes:

domingo, 8 de septiembre de 2013

obteniendo los metadatos de ficheros pdf en python



En vista a todas las fugas de información que se están dando últimamente (y a que he tenido un poco de tiempo libre), me he decidido a programar un script en python para poder obtener de forma rápida y cómoda, en primera instancia, los metadatos de ficheros pdf.


Aunque algunas personas son capaces de analizar el contenido del fichero en sí, esto puede convertirse en árdua y tediosa tarea si el contenido pertenece a un ámbito fuera de nuestro alcance, o si se trata de una cantidad ingente de información. Sin embargo, los metadatos son datos relativos al archivo. Aunque los metadatos no se encuentran necesariamente presentes en todos los ficheros, de encontrase podríamos averiguar información interesante desde el punto de vista forense, por ejemplo el autor del archivo, las fechas de creación y/o modificación, el programa con el que se ha creado, la correlación entre el nombre y el título, etc.

El uso del script es sencillo:

$ python pdfMetadata.py -h
Muestra la ayuda

$ python pdfMetadata foo.pdf /foo/bar bar.pdf
Analiza los metadatos de los argumentos introducidos a través de la línea de comandos. Los argumentos pueden ser archivos pdf o directorios, y se pueden mezclar. Si el argumento es un directorio, lo escanea recursivamente analizando los pdfs contenidos en él.

$ python pdfMetadata foo.pdf /foo/bar bar.pdf --log foo.txt
Registra la salida a un fichero en texto plano.

$ python pdfMetadata foo.pdf /foo/bar bar.pdf --log bar.csv
Registra la salida a un fichero en formato CSV.

*Las opciones --log y --csv se pueden combinar

El script lo he subido a mi [recién estrenado] github: https://github.com/rubenhortas/pdfMetadata, por si queréis probarlo, ver el código fuente, contribuir o crear vuestro propio fork.

domingo, 17 de marzo de 2013

aprender python

Por si el título deja lugar a dudas, estoy aprendiendo python.
Cuando nos toca aprender un lenguaje nuevo, siempre buscamos información que nos oriente y nos facilite el proceso, desde google hasta preguntar a nuestros amigos/conocidos que sepan un poco del tema. Así que, aquí voy a dejar algo de material disponible sobre las opciones por las que me he decantado, por si quieres aprender python:


IDE

Eclipse + PyDev: Cómo instalar PyDev: http://pydev.org/manual_101_install.html

Documentación

  • Documentación oficial de Python: [ HTML / PDF / TXT ] Un indispensable en los marcadores. Es la gran fuente de refencia para conocer librerias, clases y métodos oficiales. Desde lo nuevo que se va añadiendo a python hasta saber qué está obsoleto y cual es su reemplazo.

    http://docs.python.org
  • De 0 a python (hackXcrack): [ PDF 18 páginas ] Si ya sabes programar en algún lenguaje, deberías empezar por aquí. Un gran resumen de los conceptos básicos de python.

    http://www.hackxcrack.es/cuadernos/python/Hack_x_Crack_de0aPython.pdf
  • Guía de aprendizaje de Python (Guido van Rossum): [ HTML / PDF 77 páginas ] Introducción a lo que será programar en ptyhon. Trata conceptos desde manejar el intérprete hasta las clases, pasando por el control de excepciones.

    http://pyspanishdoc.sourceforge.net/tut/tut.html http://sourceforge.net/projects/pyspanishdoc
  • Learn Python The Hard Way: [ HTML / PDF + VIDEO (29$) ] Una manera interactiva de aprender python. Aunque describe de forma teórica conceptos fundamentales, el método que se sigue es, básicamente, un método de aprendizaje basado en la pŕactica.

    http://learnpythonthehardway.org/
  • Python para todos (Raúl González Duque - MundoGeek): [ PDF 160 páginas ] Bastante teórico, pero con ejemplos que amenizan el aprendizaje. Este libro abarca todas las fases del desarrollo de un programa, desde "¿Qué es python?" hasta el empaquetado para su distribución.

    http://mundogeek.net/tutorial-python/
  • wxPython + wxGlade: [HTML] Para diseñar y programar GUIs (interfaces gráficas). Me he decantado por wxPython, porque da un look nativo a las aplicaciones en todas las plataformas, y por wxGlade porque es muy sencillo de utilizar.

    http://www.wxpython.org/
    http://wiki.wxpython.org/WxGladeTutorial

Juegos (vía @ivmora)

  • Project Euler - http://projecteuler.net
    Resolver una serie de desafíos matemáticos mediante programación. No es exclusivo para python, pero es una buena forma de aprender nuevos conceptos.
  • Python Challenge - http://www.pythonchallenge.com
    Un "wargame" de programación. Hay que ir resolver un nivel para acceder al superior. Es muy entretenido.

martes, 28 de febrero de 2012

en la brecha

Me complace anunciaros que, desde hoy, estoy en la brecha. Una nueva sección en el blog de psi-udc, gestionado por Nino, uno de mis "top 3 profesores", tanto por sus conocimientos, como por su forma de enseñar, como a nivel de persona.

Esta sección está dedicada a referencias vinculadas con mundo de la seguridad mantenidas por alumnos de la FIC.

Si formas parte de este grupo, anímate!

miércoles, 29 de abril de 2009

mantenimiento de mac os x

Siempre es recomendable tener en forma nuestros equipos, sea cual sea la plataforma, para los que usais mac os x, en applesfera nos dejan unos consejos de recomendable lectura, cuanto menos:

mantenimiento de mac os x

Personalmente he descubierto, y me he quedado con Onyx ;)
A parte de lo mencionado en el artículo yo elimino del inicio los procesos que no uso, y además suelo limpiar (a mano) las librerías de preferencias, alguna práctica más? ;)

Vía: applesfera

jueves, 26 de junio de 2008

como atraer a un usuario normal hacia linux

Despues de tanto tiempo con el blog en idle (Lo siento :( ), parece que ya tengo un poco más de tiempo libre y que podré ir volviendo a colgar algún que otro artículo por aquí, a ver si es cierto... De momento dejo estos 5 minutos de fama, esta vez de mano de q256, un artículo en ionlitio dónde explica cómo ve un usuario ajeno a gnu/linux los diversos tipos de usuario y su uso del sistema: http://www.ionlitio.com/2008/06/25/como-atraer-a-un-usuario-normal-hacia-linux

viernes, 5 de octubre de 2007

primer beers&blogs lucense

Inmejorable, sobretodo siendo el primero :D

Hacía buena noche, así que pudimos aprovechar la terraza del MetBar la decena de frikis que fuímos a tomar unas cañas disfrutando de cañas, tapas, conversaciones interesantes y de los fuegos artificiales que inauguraban el San Froilán... :D

Según llegamos nadie sabía a qué atenerse, algunos nos conocíamos y otros no, así que la situación del principio fue la típica de presentación con un leve tinte de timidez, pero como suele pasar en estos casos que tenemos tanto en común, fue empezar a hablar y a hilar conversaciones, una estupenda tarde de cañas, sin duda hay que hacer más :D

Al final, a falta de pan buenas son tortas, y como no teníamos cámara, Raúl hizo un par de fotos con el móvil que no están tan mal cómo dice, así que si quereis verlas: foto1 foto2

jueves, 4 de octubre de 2007

primer beer&blogs en Lugo

Más vale tarde que nuca... Así que si leeis esto, sabed que para hoy a las 20:00 está convocado el primer beers&blogs en Lugo, en MetBar (Ronda de la muralla 54), aquí os dejo más información al respecto, gracias a MarcosBL:

Beers&Blogs es el término que se usa para determinar un encuentro en el mundo real de autores y participantes de weblogs.

Se trata de reuniones informales que sirven para poder conocer cara a cara a personas con las que comparte la afición por Internet y los weblogs.

Suelen convocarse en cafeterías o restaurantes y de ahí beers (cervezas en inglés), que se junta formando un término similar a “rock & roll”.

A los encuentros suelen acudir autores, así como también personas que habitualmente comentan en las bitácoras implicadas, o simplemente lectores de algunas de las bitácoras de los autores, sin excluir amistades y relaciones de diferente tipo.

Los encuentros Beers&Blogs pueden producirse en muy distintos grupos. Principalmente se producen entre autores, lectores y comentaristas de una misma zona geográfica, aunque también es habitual que se den cita autores de blogs de una misma temática, o de un grupo de personas que están relacionados con un blog o fenómeno.

En este caso se convoca el primer Beers&Blogs lucense, organizado por algunos de los miembros de Lucux (Asociación de Usuarios de Software Libre de Lugo http://www.lucux.net ) para el día Jueves día 4 de octubre a las 20:00 horas en el Metbar ( Ronda Muralla Nº 54 ), haciendo coincidir la fecha con el día de inicio de las fiestas patronales.

El evento ha sido el primero en ser listado para nuestra provincia en el conocido listado de Beers&Blogs españoles BeersAndBlogs.es (http://www.wiki.beersandblogs.es/index.php/Categor%C3%ADa:Lugo )

Basta con asistir, sin embargo si alguien quiere apuntarse con antelación puede hacerlo en http://www.userlinux.net/1191_beers_and_blogs_lugo_2007

viernes, 28 de septiembre de 2007

backuping

Muchas veces me han preguntado de qué forma hacía las copias de seguridad (backups) y muchísimas veces hemos hablado de este tema e intercambiado formas y manías... La verdad es que hay muchísimas formas de hacerlos y cada uno elige la que más le conviene, la mía consiste en hacer backup incremental de un directorio donde almaceno las cosas más importantes en un disco duro externo mediante rsync por lo menos una vez al mes.

Así que en resumen, lo que tengo es un alias para no tener que escribir toda la línea del rsync (viva la vagancia! ;D)

alias backup="rsync -q -r -t -o -g -p --delete /mnt/almacen/DIRECTORIO /mnt/disco/"

Y cuando quiero hacer un backup simplemente monto el disco externo en /mnt/disco y ejecuto el alias

$ time backup

*Uso time para ver cuanto tiempo tarda

Luego desmonto y desconecto el disco ;)