Haciendo mis respaldos en Lunar Pages

Haciendo un respaldo desde el sitio de hospedaje
Mientras espero a que se hagan las 11:00 PM para ver en SCFI.com "The Return Of The lving Dead III" (esta vez los muertos vivientes retornan gracias a un barril del famoso gas zombie encontrado en Chernovil), me puse a escribir un programa para hacer un backup de mi sitio web. Yo lo estoy hospedando actualmente en LunarPages.com y ellos ofrecen una página web segura desde la cual te los puedes bajar.
Como la virtud de el Ingeniero es la pereza y me da un dolor testicular agudo (dolor de bolas) pensar que puedo perder mi sitio web sin poder recuperarlo, me decidí a escribir un script que haga el trabajo:
1:#!/bin/bashNo quiero guardar claves en el script, no vaya ser y con mi mala suerte me roben el laptop, así que eso se lo paso por la línea de comandos, pero para el resto utilizo un archivo de configuración:
2:#
3:# This script will let you make a web backup of your website
4:# if you host it a lunarpages.com
5:#
6:# Author: josevnz@sourceforge.net
7:# License: LGPL
8:#
9:
10:declare -r SCRIPT=${0##*/}
11:declare -r UKNOWN="uknown"
12:declare -r BCK_DATE=`date +%m-%d-%Y|sed 's#^0##'`
13:declare password=$UNKNOWN
14:declare user=$UNKNOWN
15:declare destination=$HOME/webbackup
16:declare config
17:
18:function usage {
19:cat << EOF
20:$SCRIPT [-u|-d]
21:Where:
22:
23:-u User
24:-d Destination directory
25:-c config properties file
26:
27:You can use all the flags if you want!
28:
29:Blog: KodeGeek - http://kodegeek.com
30:EOF
31:}
32:
33:# Check if a parameter is missing
34:# Argument: Parameter to check
35:# Argument: Parameter name
36:#
37:function isMissing {
38: if [ "$1" == "$UNKNOWN" ]; then
39: printf "[ERROR]: %s is missing!\n" "$2"
40: usage
41: exit 192
42: fi
43:}
44:
45:if [ -z "$*" ]; then
46: usage
47: exit 192
48:fi
49:
50:while getopts "u:s:d:c:" option; do
51: case $option in
52: u)
53: user=$OPTARG
54: ;;
55: d)
56: destination=$OPTARG
57: ;;
58: c)
59: config=$OPTARG
60: ;;
61: *)
62: # Show the help
63: usage
64: exit 0
65: ;;
66: esac
67:done
68:
69:if [ ! -d "$destination" ]; then
70: mkdir -p "$destination"
71:fi
72:cd "$destination"
73:if [ $? != 0 ]; then
74: exit $?
75:fi
76:
77:server="`egrep lunarWebBackup.server $config|cut -f2 -d=`"
78:
79:isMissing "$user" "user name"
80:isMissing "$server" "server"
81:isMissing "$config" "config file"
82:if [ ! -f "$config" ]; then
83: printf "[ERROR]: Unable to open %s" "$config"
84: exit 192
85:fi
86:
87:printf "[INFO]: Connecting with %s\n" "$server"
88:for database in `egrep lunarWebBackup.database $config|cut -f2 -d=`; do
89: /usr/bin/curl
90: --user-agent "${SCRIPT}/Kodegeek 1.0"
91: --referer "$server/frontend/x/backup/index.html"
92: --insecure
93: --create-dirs
94: --user "$user"
95: -o "blog.gz"
96: --url "$server/getsqlbackup/blog.gz" &
97:done
98:
99:for alias in `egrep lunarWebBackup.aliases $config|cut -f2 -d=`; do
100: /usr/bin/curl
101: --user-agent "${SCRIPT}/Kodegeek 1.0"
102: --referer "$server/frontend/x/backup/index.html"
103: --insecure
104: --create-dirs
105: --user "$user"
106: -o "$alias"
107: --url "$server/getaliasbackup/$alias" &
108:done
109:
110:for filter in `egrep lunarWebBackup.filter $config|cut -f2 -d=`; do
111: /usr/bin/curl
112: --user-agent "${SCRIPT}/Kodegeek 1.0"
113: --referer "$server/frontend/x/backup/index.html"
114: --insecure
115: --create-dirs
116: --user "$user"
117: -o "$filter"
118: --url "$server/getfilterbackup/$filter" &
119:done
120:
121:backup="`egrep lunarWebBackup.backup $config|cut -f2 -d=`"
122:/usr/bin/curl
123:--user-agent "${SCRIPT}/Kodegeek 1.0"
124:--referer "$server/frontend/x/backup/index.html"
125:--insecure
126:--create-dirs
127:--user "$user"
128:-o "$backup-$BCK_DATE.tar.gz"
129:--url "$server/getbackup/$backup-$BCK_DATE.tar.gz" &
130:
131:wait
132:printf "[INFO]: Remote backup finished"
lunarWebBackup.aliases=aliases-kodegeek.com.gz
lunarWebBackup.filter=filter-kodegeek.com.gz
lunarWebBackup.database=blog.gz
lunarWebBackup.backup=backup-kodegeek.com
lunarWebBackup.server=https://xxxx:yyyy
Y como no quiero escribir mucho entonces coloco un alias en mi $HOME/.bashrc:
alias wbackup="$HOME/sf/kodegeek/bin/make_lunar_pages_bckp.sh -c $HOME/etc/wbackup.conf -u"Y al final lo llamo así:
wbackup usuario:claveSencillo. Ahora ya puedo ver a mis Zombies tranquilo, sabiendo que mi respaldo está en mi disco duro.
NOTA: No puedo colocar el código en CVS (aún) porque SF.net está jodido. En algun momento lo actualizare.
NOTA II: El código finalmente está en CVS y también se lo puede bajar desde acá.
Buscar en Technorati: venezuela, linux, Open Source, backup
Buscar en Blogalaxia: venezuela, linux, Open Source, backup



4 Comentarios:
Hola josé para correr el programa necesito tener acceso SSH hacia el hosting donde tengo hospedado?
Para nada. El programa se baja los archivos de respaldo utilizando HTTPS con el usuario / palabra clave indicada.
pero si leiste bien, es especifico para Lunar Pages y como es que ellos ofrecen los respaldos.
lo q' se puede hacer cuando uno espera su pelicula favorita...!!! jejeje :P
¿Tú estas cerca de NY, verdad? estoy tratando de hacer un encuentrico blogguero por allá a finales de Mayo. Avisame si te animas...
Bye bye ;)
lo q' se hace cuando uno esta esperando su pelicula favorita...jejeje :p
¿Tú estas por NY, verdad? estoy tratando de reunir unos cuantos bloggueros para un encuentrico a finales de Mayo. Dejame saber si te animas...pasa por mi blog!!!
Bye bye ';)
Publicar un comentario en la entrada
Enlaces a este articulo:
Crear un vínculo
<< Regresar