Copias de seguridad remotas por FTP |
SOFTWARE - General | |||||||||||||||||||||
Sábado, 04 de Octubre de 2008 15:54 | |||||||||||||||||||||
La finalidad de este artículo es concienciar a los usuarios de la importancia de realizar copias de seguridad periódicas...
IntroducciónAunque los usuarios cada vez se toman más en serio la realización de copias de seguridad, todavía mucha gente sigue perdiendo archivos y horas de trabajo por no realizar copias de forma periódica tal y como se recomienda. A pesar de haber avanzado mucho el hardware de almacenamiento en estos últimos años con la aparición de los discos USB externos y las memorias USB, los usuarios menos precavidos siguen sin realizar copias de seguridad o las hacen muy pocas veces al año. Para intentar convencer a aquellos usuarios arriesgados de la importancia de realizar copias de seguridad periódicas, vamos a enumerar las múltiples circunstancias que pueden ocasionarnos una pérdida de datos:
A veces los discos duros se estropean La finalidad de este artículo es concienciar a los usuarios de la importancia de realizar copias de seguridad periódicas y proponer un sistema sencillo de realización automática de copias de seguridad en servidores remotos por FTP. Organización de la informaciónAntes de continuar, debemos dejar claro cual es la información importante que debemos salvaguardar, así como la frecuencia de realización de las copias de seguridad. La información más importante de un usuario es la información que genera el propio usuario, es decir, sus documentos. Estos suelen ser documentos, hojas de cálculo, bases de datos, presentaciones o simples archivos de texto. Lo normal es que el usuario guarde sus documentos en la carpeta Mis Documentos La carpeta Mis Documentos puede llegar a contener miles de documentos, provocando que la copia de seguridad ocupe cientos de MB, o incluso algún GB, lo que convierte la realización de la copia de seguridad en una tarea muy lenta. Para poder realizar copias frecuentes, debemos evitar esa lentitud a toda costa. Para ello distinguiremos entre dos tipos de información:información de alta importancia e información de baja importancia.
Frecuencia de las copias de seguridad Para poder almacenar estos dos tipos de información, necesitamos dos carpetas
Carpetas donde almacenaremos los datos Si queremos guardar otros archivos no generados por nosotros (Ej: archivos que hayamos descargado de Internet o que nos hayan enviado por correo electrónico, etc...) pero que consideramos importantes, podemos almacenarlos en alguna carpeta dentro de 'Mis Documentos' Ahora solo falta automatizar el proceso de generar la copia de seguridad y salvaguardarla. Para ello crearemos un script (archivo con ordenes de comandos) que comprima las carpetas en un archivo ZIP y le envíe por FTP o le copie al disco externo USB según sea el caso. Envío de la copia por FTP Realización de la copia en sistema Microsoft WindowsCompresión de los datosPara poder realizar un script que comprima archivos zip desde linea de comandos, necesitamos instalar el comando zip para Windows. Para ello, lo mejor es que instalemos las "GNU Utilities for Win 32". Desde este enlace se pueden descargar. Si descomprimimos todos los archivos del paquete zip dentro de la carpeta C:WINDOWS, podremos ejecutar el comando zip y muchos otros comandos típicos de Unix (wget, wput, wc, tar, gzip, du, grep, bzip2, unrar, md5sum, diff, sort, etc...) desde una ventana de comandos de Windows, sin necesidad de indicar la ruta completa del ejecutable, ya que la carpeta C:WINDOWS se encuentra dentro de la ruta (PATH) de búsqueda de comandos. Una vez instalado el comando zip, crearemos el script para comprimir las carpetas. La carpeta DocumentosImportantes se encuentra dentro de la carpeta Mis Documentos que a su vez se encuentra dentro de la carpeta home del usuario: C:Documents and SettingsNombre-Usuario Script para la creación de una copia de seguridad comprimida
Así habremos creado dentro de la carpeta DocumentosImportantes, un archivo llamado DocumentosImportantes.zip que contiene comprimidos todos los archivos de la carpeta. Envío de la copia de seguridad al servidor FTPPara enviar la copia de seguridad a un servidor FTP, utilizaremos el cliente de FTP de comandos de Windows. Lo primero que necesitamos es disponer de una cuenta en un servidor FTP. Para poder hacer uso del servidor FTP, necesitamos la siguientes datos: Datos para conectar con el servidor FTP
Si quisiéramos subir el archivo DocumentosImportantes.zip manualmente, hacia el servidor FTP, deberíamos abrir una ventana de comandos y ejecutar los siguientes comandos:
Envío de la copia por FTP Para subir el archivo al servidor de FTP de forma automática, al ejecutar el comando ftp, emplearemos la opción -s. Así, el cliente FTP tomará de un archivo los datos que se introducen por teclado cuando se efectúa manualmente. Crearemos el siguiente archivo: Archivo: comandos-ftp.txt
Después, solo tendremos que ejecutar el siguiente comando:
Así, el cliente de FTP cogerá del archivo comandos-ftp.txt los datos de nombre de usuario y contraseña, así como los comandos que debe procesar. Con esto habremos conseguido realizar el envío de la copia de seguridad, sin tener que introducir ningún dato por teclado. TRUCO: Otra forma sencilla de enviar el archivo por ftp en un solo comando sin necesidad de crear un archivo comandos-ftp.txt, es utilizando el comando wput indicando el nombre de usuario seguido de dos puntos, seguido de una arroba y seguido del nombre del servidor. Por ejemplo:
De igual forma, si tuviéramos que descargarnos una copia del servidor ftp, podemos hacerlo en un solo comando con wget. El ejemplo de utilización sería:
Mantener histórico de copias de seguridadSi quisiéramos mantener varias copias en el servidor, deberemos ir rotando los archivos cambiándoles de nombre. Por ejemplo, si quisiéramos mantener las últimas cinco copias, el archivo comandos-ftp.txt sería así: Archivo: comandos-ftp.txt que mantiene cinco últimas copias
Automatizar la tareaPara automatizar la tarea de compresión y envío de los datos al servidor de FTP, crearemos un script que realice todo de forma automática y posteriormente crearemos una tarea programada que ejecute nuestro script todos los días, para que no tengamos que realizar ninguna acción y la copia se realice por sí sola. Juntando los dos scripts anteriores, tendremos el script completo: Archivo: DocumentosImportantes.bat
Para que este script funcione correctamente, deberemos crear el archivo comandos-ftp.txt dentro también de la carpeta DocumentosImportantes con el nombre de usuario y la contraseña del servidor FTP de nuestra cuenta. También debemos poner el nombre del servidor FTP correctamente en la última línea del script, ya que en el ejemplo se ha puesto enebro.pntic.mec.es. Ahora solo tenemos que crear una Tarea Programada que lance nuestro script DocumentosImportantes.bat todos los días a una hora concreta. Como yo suelo tomar café todos los días de 12:00 a 12:20, ejecuto el script a las 12:05. Para crear la tareas programada, debemos ir a Inicio > Panel de Control > Tareas Programadas > Agregar tarea programada. Aparecerá el asistente de tareas programadas que nos preguntará qué aplicación debemos ejecutar. Evidentemente nuestro script no aparece en la lista, así que debemos hacer clic en el botón Examinar y seleccionarlo: Selección de la tarea programada Luego deberemos asignar un nombre a la tarea, que puede ser el mismo que el nombre del script. También debemos especificar la periodicidad con la que queremos ejecutar la tarea. En nuestro caso, diariamente: Periodicidad de la tarea programada Acto seguido tendremos que especificar la hora a la que queremos que se ejecute la tarea. En nuestro caso, a las 12:05 horas. Hora de ejecución de la tarea programada Finalmente debemos proporcionar el nombre y contraseña de un usuario del equipo, para poder ejecutar la tarea. Usuario con el que se ejecuta la tarea programada Ya tendremos creada nuestra tarea, que se ejecutará de forma automática todos los días a las 12:05 horas. Para probar que funciona, podemos esperar hasta las 12:05 o bien hacer clic con el derecho y Ejecutar la tarea. Tareas programadas Para la realización de la copia mensual de la carpeta Mis Documentos crearemos un script que comprima la carpeta en un archivo y copie dicho archivo al disco USB: Archivo: MisDocumentos.bat
Antes de ejecutar este script, hay que conectar el disco USB al PC, por eso, es mejor ejecutar este script manualmente. Realización de la copia en LinuxCompresión de los datosLa mayoría de distribuciones linux disponen del comando zip para comprimir desde la línea de comandos. Si no fuera nuestro caso, deberíamos instalarlo siguiendo las instrucciones de instalación de nuestra distribución. Por ejemplo, en el caso de distribuciones basadas en Debian como Ubuntu, Linex, etc... deberemos ejecutar:
Una vez instalado el comando zip, crearemos el script para comprimir las carpetas. La carpeta DocumentosImportantes se encuentra dentro de la carpeta home del usuario.
Este script creará dentro de la carpeta DocumentosImportantes, un archivo llamado DocumentosImportantes.zip que contiene comprimidos todos los archivos de la carpeta. Envío de la copia de seguridad al servidor FTPPara enviar la copia de seguridad a un servidor FTP, utilizaremos el cliente de FTP de comandos de Linux. Lo primero que necesitamos es disponer de una cuenta en un servidor FTP. Para poder hacer uso del servidor FTP, necesitamos la siguientes datos:
Si quisiéramos subir el archivo DocumentosImportantes.zip manualmente, hacia el servidor FTP, deberíamos abrir una ventana de comandos y ejecutar los siguientes comandos:
Envío de la copia por FTP Para poder subir el archivo al servidor de FTP de forma automática, debemos crear dentro de nuestra carpeta home, un archivo llamado .netrc. Dicho archivo contendrá unos valores por defecto de nombre de usuario, contraseña y una macro inicial donde escribiremos los comandos que queremos ejecutar automáticamente. Así, cada vez que el cliente FTP conecte con nuestro servidor, se autentificará y ejecutará los comandos de la macro inicial. Para nuestro ejemplo, crearemos el siguiente archivo: Archivo ~/.netrc
Después, solo tendremos que ejecutar el siguiente comando:
El cliente de FTP analizará el archivo .netrc y al encontrar unas especificaciones para la máquina enebro.pntic.mec.es, se autentificará y procesará los comandos de la macro inicial (init). Con esto habremos conseguido realizar el envío de la copia de seguridad, sin tener que introducir ningún dato por teclado. TRUCO: Otra forma sencilla de enviar el archivo por ftp en un solo comando sin necesidad de crear el archivo .netrc, es utilizando el comando wput indicando el nombre de usuario seguido de dos puntos, seguido de una arroba y seguido del nombre del servidor. Si wput no estuviera instalado, se puede instalar con apt-get install wput. Un ejemplo de utilización de wput es:
De igual forma, si tuviéramos que descargarnos una copia del servidor ftp, podemos hacerlo en un solo comando con wget. El ejemplo de utilización sería:
Mantener histórico de copias de seguridadSi quisiéramos mantener varias copias en el servidor, deberemos ir rotando los archivos cambiándoles de nombre. Por ejemplo, si quisiéramos mantener las últimas cinco copias, el archivo .netrc sería así: Archivo ~/.netrc que mantiene cinco últimas copias
Automatizar la tareaPara automatizar la tarea de compresión y envío de los datos al servidor de FTP, crearemos un script que realice todo de forma automática y posteriormente crearemos una tarea programada que ejecute nuestro script todos los días, para que no tengamos que realizar ninguna acción y la copia se realice por sí sola. Juntando los dos scripts anteriores, tendremos el script completo: Archivo: DocumentosImportantes.sh
Para que este script funcione correctamente, deberemos crear el archivo .netrc dentro de nuestro home. En dicho archivo deberemos configurar correctamente el nombre del servidor, el nombre de usuario y la contraseña del servidor FTP de nuestra cuenta. Ahora solo tenemos que crear una Tarea Programada que lance nuestro script DocumentosImportantes.sh todos los días a una hora concreta. Como yo suelo tomar café todos los días de 12:00 a 12:20, ejecuto el script a las 12:05. Usaremos el comando crontab -e y añadiremos la siguiente línea: Ejecutar crontab -e y añadir:
De esta manera, todos los días a las 12:05 se ejecutará nuestro script que comprimirá y enviará mis documentos importantes al servidor FTP de forma totalmente trasparente al usuario. |