Cómo comparar archivos y carpetas con el comando diff de Unix (Mac, Linux)

Tengo que reconocerlo: soy un fan de la línea de comandos. De la de Unix sobre todo (Linux y Mac). Aún me resulta increíble lo sencillo y rápido que es hacer las cosas con ella, evitando tener que abrir programas que tardan un mundo en cargar para hacer lo mismo. Siempre que sepas, claro.

En un post anterior hablé del programa Diffmerge, que permite hacer lo que pone en el título de la entrada: comparar archivos o carpetas. Y además es multiplataforma: Windows, Linux y Mac. Y viendo que es una entrada bastante visitada, y al leer un post en Lifehacker, me decidí por escribir ésto que estás leyendo.

Sigue leyendo

Cómo hacer capturas de pantalla en Ubuntu, Mac OS X y Windows (desde el teclado)

"captura" de pantalla

Muchas veces nos encontramos con la necesidad de efectuar una captura de pantalla, o “tomar una foto” de ésta o de una zona, para insertarla en un documento, enviarla por correo electrónico, o para cualquier otra cosa. Para ello, muchos usuarios descargan e instalan aplicaciones creadas para tal fin.

Pero aún hay mucha gente que desconoce que todos los sistemas operativos permiten hacerlo sin tener que instalar nada, de manera nativa. Vamos a ver qué opciones tenemos, en el caso que utilicemos Windows, Mac o Ubuntu (Linux):

Sigue leyendo

Backup remoto de bases de datos MySQL con mysqldump

Las bases de datos guardan información fundamental para nuestro negocio o actividad, y un aspecto a tener muy en cuenta es realizar copias de seguridad o backups regulares tanto de los datos que contienen como de su estructura.

Las webs, como aplicaciones que son, no están exentas de necesitarlas, pues ya sea por ataques o por desgracias físicas de los servidores en las que están alojadas, no podemos permitirnos dejar a nuestros usuarios o visitantes sin servicio, así que es necesario contar con una buena política de copias de seguridad.

Si tenemos una web, blog, servicio online, etc y utilizamos una base de datos MySQL podemos emplear diferentes mecanismos para realizar la copia de seguridad, por ejemplo entrar enphpMyAdmin, si disponemos de él, y hacerla manualmente. Pero si queremos ahorrarnos entrar en este administrador de bases de datos y nuestra máquina ya tiene MySQL instalado, podemos emplear el siguiente comando para crear un archivo en nuestra máquina con la copia de seguridad de una base de datos MySQL de un servidor remoto:

mysqldump -h [nuestro.servidor.com_o_IP] -u [usuario] -p[password] [base_de_datos] > archivo_backup.sql

Este comando nos creará el archivo archivo_backup.sql con el contenido de la base de datos que le hayamos indicado. Cuidado, entre -p y [password] no hay ningún espacio.

Seguro que os preguntaréis para qué puede servir ésto; pues bien, la respuesta es sencilla: paraautomatizar el proceso y poder programar una o varias copias de seguridad diariamente,ejecutando mediante Cron un script programado en Python como el que se muestra a continuación:

Sigue leyendo

Tamaño ideal de la partición Swap

La memoria virtual es un mecanismo de los sistemas operativos que permite hacer creer a los programas que disponen de más memoria de la que realmente dispone el equipo físicamente, y consiste en un espacio de intercambio, que puede ser un archivo de paginación (pagefile.sys), en el caso de Windows, o una partición de disco, lladama SWAP o de intercambio, que es el caso de los sistemas Unix.

Mediante la memoria virtual podemos, por ejemplo, disponer de 4 Gb de RAM en equipos de 32 bits, que están limitados a 3 Gb por no poder “trabajar” con números tan altos; cada ciclo del procesador éste trabaja con una “palabra” de 32 ceros y unos, que representan la instrucción que tiene que ejecutar y la/s dirección/es de memoria necesarias (dicho muy por encima), y claro, no le cabe.

Así pues, los procesos poco activos o menos prioritarios se pueden almacenar en el disco duro, dejando memoria disponible para cargar otros procesos. Pero claro, el tiempo de acceso al disco es muchísimo más elevado que el de acceso a la memoria, y si el sistema abusa de la memoria virtual puede hundirse, debido a la hiperpaginación o rubbish.

Una vez sabemos para qué sirve la memoria virtual, o espacio de intercambio, o SWAP, que en Linux se crea al instalar el sistema operativo, ¿qué tamaño debemos asignarle a dicha partición? Pues según Russell Coker, que sabe bastante del tema, el tamaño ideal de la SWAP es:

  • Igual a la RAM para ordenadores con menos de 1Gb
  • La mitad de la RAM para equipos entre 2 y 4 Gb
  • 2 Gigas para equipos con más de 4 Gb de RAM

Vale la pena recordarlo.

Manual de cómo usar Cron

En el mundo de los servidores hay mil y una tareas que se realizan a diario, como copias de seguridad nocturnas, chequeo de sistemas, envío de alertas por email… cualquier cosa que se nos pase por la cabeza. Pero claro, un programa no puede ejecutarse solo. Para que todos esos procesos se lancen en el momento esperado, es necesario que, o bien se encuentren todo el tiempo activos, en estado wait (a la espera) hasta que llegue el momento de “despertarse” (solución poco óptima), o que los lance otro proceso.

Una de las cosas que hace extremadamente bien Linux es automatizar tareas, y para ello cuenta con cron, que es un demonio (programa que se ejecuta continuamente en backgroundo segundo plano, normalmente al arrancar el sistema) que se ejecuta cada minuto y mira si tiene que lanzar algún otro proceso. En esta entrada hablaremos de cómo configurar cron.
Sigue leyendo

Servidor de correo en Linux con Postfix

Uno de los servicios imprescincibles en cualquier servidor Linux (o máquina Linux en general, por qué no) es el correo electrónico. Disponer de un servidor de correo nos permitirá (has acertado) poder enviar correos electrónicos a traves de la Web.

Posiblemente los que vengan de Windows y utilicen Outlook piensen “¡Oh! ¡Estos linuxeros han descubierto la sopa de ajo!” Pero claro, lo que aquí se pretende no es redactar y enviar emails a través de Outlook (o Thunderbird, o el Evolution de Ubuntu, o cualquier otro gestor de correo), sino poder enviar emails desde la línea de comandos, o desde cualquier otro programa que hayamos creado.

Dicho de otra manera, y para poner un ejemplo concreto, podemos programar un script que cada cierto tiempo, o a una determinada hora, recopile información del sistema y nos la envíe a una o varias cuentas de correo. En el formato que queramos. Con los archivos adjuntos que necesitemos. O que nos avise de cualquier incidencia, o cualquier otro escenario que se nos imagine.

Evidentemente, también se puede montar algo así en Windows, pero en Ubuntu es muy rápido y sencillo utilizando el servidor de correo Postfix. Sigue leyendo