jueves, abril 24, 2014

Calendario compartido en thunderbird sincronizado con el calendario de Google.

Se pretende crear un calendario común y compartido para que todos los que queramos vean nuestro calendario. Para ello tenemos que tener el thunderbird que es un cliente de correo.

Si ya teníamos thunderbird, solamente tenemos que instalar 2 complementos: lightning y provider for google calendar.

Para instalarlos simplemente entramos en thunderbird y en el menú superior entramos en Herramientas > Complementos. En la parte superior hay una barra para buscar los complementos y simplemente escribimos los 2 complementos dichos anteriormente y reiniciamos thunderbird.

Ahora creamos una cuenta en google y si la tenemos no hace falta crearla. Accedemos a la cuenta de google y entramos en Calendar


Una vez hemos entrado, a la izquierar nos saldrán los calendarios que tenemos. Creamos un nuevo calendario desplegando la pestaña que está al lado de Mis calendarios.

 Creamos un calendario al que le vamos a llamar prueba.



Ya estaría creado nuestro calendario. Entramos a la configuración de los calendarios, para ello entramos al engranaje que hay en la parte superior a la derecha del calendario y entramos en configuración. Aquí veremos los calendarios creados y podemos gestionarlos.


Pinchamos en el calendario que acabamos de crear.



Copiamos el ICAL de la dirección privada.


Abrimos thunderbird y accedemos al calendario. Creamos un nuevo calendario.



Marcamos calendario En la red y le damos a siguiente.






Marcamos Google Calendar, en lugar pegamos el ICAL que hemos copiado anteriormente. Le damos a siguiente y nos pedirá el nombre de usuario y contraseña que usamos en google. Ponemos el nombre de usuario y contraseña y le damos a aceptar.


Ya tendríamos el calendario puesto.





Ahora probamos a crear un nuevo evento al calendario para comprobar que se sincronizan. Para crearlo simplemente pinchamos en el sitio que queremos crearlo y le ponemos un nombre.



Una vez creado volvemos al thunderbird y podemos comprobar que efectivamente se ha sincronizado el evento en los 2 sitios.






martes, abril 08, 2014

Copias de seguridad con duplicity.

Es una tarea dura eso de realizar copias de seguridad, por eso vamos a explicar como hacer copias de seguridad con duplicity automáticamente y además subirlas a un servidor ftp. En primer lugar, tenemos que instalar duplicity y ncftp

$ sudo apt-get install duplicity 
$ sudo apt-get install ncftp 

 Ahora vamos a realizar una copia sencilla sin encriptar de un directorio en concreto y subirla a nuestro servidor. Para ello lo hacemos de la siguiente manera:

$ duplicity --no-encryption /home/usuario/pepe ftp://usuario@IP/ruta

En el comando anterior, estamos indicando con el parámetro --no-encryption, que la copia no irá encriptada.

Ahora supongamos que dentro de la carpeta /home/usuario/pepe hay una carpeta en la que no hay información valiosa y por tanto no queremos que a la hora de realizar la copia de seguridad, también que copie esa carpeta y que solo se copien todas las demás excepto esa. Para eso lo hacemos de la siguiente manera:

$ duplicity --no-encryption /home/usuario/pepe --exclude /home/usuario/pepe/basura ftp://usuario@IP/ruta

Con el parámetro --exclude excluímos la carpeta /home/usuario/pepe/basura, por lo tanto la copia se realizará de todo el contenido de la carpeta exceptuando la carpeta basura.

Supongamos que ahora, queremos excluir una serie de carpeta que empiezan igual y realmente solo nos interesa una. Por ejemplo las carpetas se llamarían hola1, hola2, hola3... y así muchas carpetas. Se haría de la siguiente manera:

$ duplicity --no-encryption /home/usuario/pepe --exclude /home/usuario/pepe/"hola**" \ --include /home/usuario/pepe/hola7 ftp://usuario@IP/ruta

Para incluir una carpeta o archivo, se pone el parámetro --include y a continuación ponemos la carpeta que no queremos que se excluya en el caso de que empiece por ejemplo igual que las otras que hemos excluído. También si queremos incluir otra carpeta que no está dentro de la carpeta a la que queremos hacerle la copia, podemos usar --include. Para excluir carpetas con el mismo nombre simplemente ponemos entre comillas (" ") como empiezan o terminan las carpetas o archivo y añadir un asterisco indicando que todo lo que empiece o acabe por lo que hemos indicado, como hemos podido ver en el ejemplo anterior. Para seraparar el parámetro --exclude y --include, usamos una barra lateral hacia la izquierda ( \ ).

Por defecto las copias serán completas o full, pero si queremos que sea incremental simplemente indicamos incremental en el comando. por ejemplo de la siguiente manera:

$ duplicity incremental --no-encryption /home/usuario/pepe ftp://usuario@IP/ruta

Por defecto, para evitar problemas con las copias de seguridad, duplicity parte las copias en paquetes de 25Mb pero si tenemos mucha información que copiar, saldrían muchísimos paquetes, para que los paquetes sean un poco mas grandes, podemos indicarlo con el parámetro --volsize 

Supongamos que queremos que los paquetes de nuestra copia de seguridad sean de 150Mb, para ello lo hacemos de la siguiente manera:

$ duplicity --no-encryption /home/usuario/pepe --volsize 150 ftp://usuario@IP/ruta

Si solo ponemos un número, por defecto será expresado en Mb.

Cuando llevamos tiempo realizando las copias, cada vez está mas lleno y mas lleno nuestro servidor donde almacenamos las copias, podemos hacer que se borren automáticamente cara cierto tiempo de la siguiente manera:

$ duplicity remove-older-than 60D ftp://usuario@IP/ruta

Así indicamos con el parámetro remove-older-than el tiempo que queremos que mantenga las copias. Como podemos ver en el ejemplo, hemos puesto 60D y esto significa, que permaneceran las copias 60 dias y cuando tengan 60 dias se borrará automáticamente.

nota: no se puede realizar copias de seguridad y borrar copias en el mismo comando.


Puede darse el caso de que las copias estén incompletas o no se hayan hecho bien, entonces esto puede dar problemas, para borrar las copias incompletas o mal realizadas, podemos hacerlo con el parámetro cleanup. Podemos verlo en el siguiente ejemplo:


$ duplicity --no-encryption cleanup ftp://usuario@IP/ruta

Ya solo faltaría que las copias se hicieran solas, para ello utilizamos el cron. Para usar el cron ejecutamos el comando crontab -e. En este fichero, podemos indicar los minutos, la hora, el dia, el mes... de cuando queremos que se ejecute un comando que en nuestro caso serán las copias de seguridad. El cron funciona de la siguiente manera:

min hora dia mes año comando

En ese orden indicamos el momento exacto que queremos que se ejecute el comando. Por ejemplo queremos que se realice una copia de seguridad todos los dias a las 9 de la mañana, para ello lo ponemos de la siguiente manera en el final del fichero crontab

0 9 * * * export FTP_PASSWORD=contraseña;duplicity --no-encryption /home/usuario/pepe ftp://usuario@IP/ruta

Añadimos un export al comando para que no pida contraseña a la hora de hacer las copias, porque sino no se haría automáticamente. Los asteriscos indican que todos los dias, meses y años se ejecute a las 9 de la mañana la copia de seguridad.

Nota: la primera vez que hagamos una copia, no hará falta que indiquemos que es full ya que es la primera copia y obviamente la primera copia tiene que ser una completa, las siguientes veces hay que indicar que es full ya que si no lo indicamos la copia será incremental. Para ello simplemente poner full detrás de duplicity.

0 9 * * * export FTP_PASSWORD=contraseña;duplicity full --no-encryption /home/usuario/pepe ftp://usuario@IP/ruta

 

jueves, abril 03, 2014

Carga de datos en Mysql desde la consola a partir de una hoja de calculo

Lo primero tendremos que guardar la hoja de calculo en formato CSV, por ejemplo con los campos separados por comas y los textos entre comillas (").

Acceder a mysql indicando --local-infile para que esté autorizada la carga de datos, por ejemplo:

mysql -u miusuario -p --local-infile

A continuación creamos la tabla con igual número de valores y características que los de nuestra hoja de calculo.

create table mi_tabla (campo1 varchar(20), campo2 int, campo3 datetime);

Finalmente procedemos a la carga:

load data local infile '/home/usuario/fichero.csv' into table mi_tabla fields terminated by ',' enclosed by '"' lines terminated by '\n'


Exportación de datos de Mysql a un fichero CSV

Desde la consola de mysql:

SELECT * FROM mitabla into outfile '/tmp/fichero.csv' fields terminated by ';' optionally en
closed by '\"' lines terminated by '\r\n';