logo

Hacer un backup de los artículos de Blogspot mediante un script
3.6.06


English translation, at the end of article - Aunque se puede suponer que Blogspot-uno de los servicios líderes de alojamiento de bitácoras y empresa del grupo Google-realiza una gestión adecuada de copías de seguridad o backup y que cualquier incidencia en sus servidores no afectaría a los artículos publicados por sus usuarios, lo cierto y verdad es mejor prevenir que curar.

Para realizar copias de seguridad hay dos métodos: el que recomienda Blogspot es algo tedioso, complejo y peligroso mientras que el recogido por ecmanaut es muy sencillo de ejecutar aunque sólo sirve para hacer una backup de los últimos 100 artículos al estar basado en el RSS feed de la bitácora y recoger ésta sólo ese número máximo.

Una tercera solución sería ejecutar un script como el siguiente:

#!/bin/bash

clear

# fecha actual
fecha_actual=`date +%y%m%d`
# nombre del blog
blog="zutanilog"
# directorio para realizar backup
target_dir="/home/zutanito/Desktop/Backup"
# año del primer artículo publicado
year_0=5
# mes del primer artículo publicado
mes_0=2
cd $target_dir

while [ $year_0 -lt 7 ]
do

while [ $mes_0 -lt 13 ]
do

if [ $mes_0 -le 9 ]; then
url="200"$year_0"_0"$mes_0"_01_"$blog"_archive.html"
else
url="200"$year_0"_"$mes_0"_01_"$blog"_archive.html"
fi

#obtiene todas las páginas mensuales
wget -nd http://$blog.blogspot.com/$url
let mes_0=mes_0+1
done

let year_0=year_0+1
mes_0=1
done

#crea un fichero tar+bzip2
tar jcf backup_blogspot_$fecha_actual.bz2 $target_dir
#mueve a la Papelera los ficheros html descargados
mv $target_dir/*.html ~/.Trash



Este script crea una copia de seguridad de todos los artículos publicados en la bitácora desde que ésta fue creada hasta diciembre de 2006. Para ello, utiliza la propiedad de Blogspot de almacenarlos mensualmente en una página del tipo:

http://nombre_del_blog.blogspot.com/yyyy_mm_01_archive.html

donde yyyy corresponde a los años (p.e 2001, 2002, ... 2006) y mm a los meses (01, 02, ... , 12 o, lo que es igual, Enero, Febrero, ..., Diciembre).

Para obtener las páginas de archivo mensuales, el script utiliza wget.

Para economizar espacio en disco duro, el script posteriormente crea un fichero bz2 que contiene todas las páginas de archivo mensual con sus correspondientes artículos que han sido descargadas de Blogspot para luego enviarlas a la Papelera (¡por cuestión de limpieza!).

Al basarse en el sistema que Blogspot tiene de archivar los artículos por meses, en el Panel de Control hay que establecer esta periodicidad, tal y como se describe en la ayuda. Para el correcto funcionamiento del script es imprescindible tener habilitado el archivo mensual de artículos.

El script puede adaptarse fácilmente a otra bitácora mediante la modificación de sólo cuatro variables:

1) blog es el nombre de la bitácora y coincide con la primera parte de la URL donde está alojada. En el script, la URL es zutanitolog.blogspot.com; por tanto, blog="zutanilog".

2) target_dir es el directorio donde se realizará la copia de seguridad. Este hay que crearlo previamente mediante el comando mkdir /home/zutanito/Desktop/Backup. Por tanto, en el ejemplo, target_dir="/home/zutanito/Desktop/Backup". Corresponde a la carpeta Backup que está en el Desktop (escritorio) del usuario zutanito.

3) year_0 almacena el primer año (en formato númerico, sin ceros) en el que se publicó un artículo en la bitácora. En el ejemplo, fue en febrero de 2005, por lo que, year_0=5.

4) La variable mes_0 es igual al mes en el que fue publicado el primer artículo. Si el primer artículo fue publicado en febrero de 2005, eso significa que, mes_0=2

Con estas adaptaciones, se ejecuta el script personalizado para la bitácora en la bash shell y se crea la copia de seguridad.

En Enero de 2007, habrá que actualizar el script cambiando while [ $year_0 -lt 7 ] por while [ $year_0 -lt 8 ] Y así sucesivamente hasta el fin de los tiempos...

Es muy recomendable, automatizar la ejecución de las copías de seguridad mediante su inclusió en el cron u otro gestor de tareas similar.

+info: Imprimir un fichero ASCII de 270 carácteres/línea en varíos A4 | cpio y la sencilla gestión de copías de seguridad | El boleto de primitiva en el escritorio | Borrado masivo de ficheros a partir de un patrón | Obtener fondos de escritorios automáticamente |


Backing up all Blogspot articles using a bash script

We can think that Blogspot-a blog leader service and a Google's company-has a correct backup policy and any server incident will not affect to our articles. But... In Spain, we have an old and popular phrase: Más vale prevenir que curar (something similar a 'Is better to prevent that cure' )

I know two popular methods for backing up my Blogspot blog. Firstly, a method propposed by Blogspot: its something tedious and dangerously from begginers users and demands to change your blog template each time to make backup copies. The ecmanaut solution is extemely easy to use but has a lack: only backing up the 100 more newest articles because is based in RSS Blogspot URL, and it only collect this amount of articles.

A third way consists to execute a bash script in your linux computer.


Objetive

Make a copy of all your Blogspot articles without any articles number limitation. If you want to use it, you will need to change four variables, as I will describe later.

Requisites

1) This scripts uses wget and bzip2 command and twice must be installed in your computer. First command is necessary to download blog articles and
bzip2 to create a compressed file that will called backup_blogspot_yymmdd.bz2 (¡save space is important!). Downloaded HTML files are moved to ~/.Trash.

2) Its necessary to change the frecuency archive to monthly as described in Blogsome help.


This script supposes that you are publishing articles since February 2005 to today. All your articles are archived in several Blogspot URLs, one by every month that it includes all articles published during these, like

http://blog_name.blogspot.com/yyyy_mm_01_archive.html

where yyyy are years (2005, 2006...) and mm are months (01, 02, ... , 12 or what is equal, January, February, March, ..., December). The script looking for the monthly archive URLs, browse and download it using wget command. At the end, you have so many HTML files as months in which you have published your articles.

The variables

If you want to adapt this script for your personal use, its necessary changes the following variables.

1) blog is blog name and agrees with the first term of yours blog URL. For example, if the URL blog is zutanilog.blogspot.com, then blog="zutanilog".

2) target_dir is the computer path and folder where you can download blog articles and make a backup. Previously, you must create it with mkdir command. In script,
target_dir="/home/zutanito/Desktop/Backup".

3) In the example, we began to publish articles in our blog in February 2005. Therefore, year_0 (numbers without zeros) is equal to 5 (year_0=5) and mes_0 is 2 (mes_0=2)

During January 2007, you will adapt to change the script to new year. Only need change while [ $year_0 -lt 7 ] by while [ $year_0 -lt 8 ] And thus, until the Final Judgment Day arrives...

With these changes, now you can execute the script in bash sell.

Final recomendation

If you wants to automate the backing up work, you would include a script call from your cron or other similar task manager.

And that's all, folks.


>> Publicado en Categoría: Linux y Blogosfera

| Permalink | Enlaces a este artículo | Enviar por correo-e |

Marcadores sociales: Meneame | Fresqui | Facebook | FriendFeed | Google Bookmarks | Yahoo! My Web | Technorati | Twitter | Delicious |

0 Comentarios:

Publicar un comentario

Enlaces a este artículo:

Crear un enlace

<< Principio


2.0