Anonim

Los usuarios de computadoras que han crecido con computadoras Mac y Windows avanzadas pueden no ser conscientes de ello, pero una vez, hace mucho tiempo, todas las computadoras personales se controlaban mediante una interfaz de línea de comandos. Sí, ese cuadro de comando torpe en su máquina Windows solía ser literalmente la única forma en que la mayoría de las personas interactuaba con una computadora. Las interfaces de línea de comandos dependían en gran medida de pequeños programas llamados 'scripts', que eran colecciones de comandos del sistema operativo utilizados para realizar tareas comunes.

Aunque las interfaces gráficas de usuario de las PC de hoy en día son años luz más sofisticadas y fáciles de usar que las antiguas líneas de comando, todavía hay usos para el método más antiguo de controlar su computadora. Una de las aplicaciones más comunes y más adecuadas para un script de línea de comandos es la copia de seguridad de datos. Los scripts de línea de comandos pueden automatizarse para ejecutarse en cualquier momento sin interacción humana y tienen pocas limitaciones. Lo mejor de todo: son una parte integrada del sistema operativo Windows.

¿Por qué comandos de línea de comandos?

¿Por qué usar un script de línea de comandos cuando hay programas de respaldo comerciales y gratuitos? Bueno, los scripts de línea de comandos tienen una serie de ventajas únicas. Éstos son algunos de ellos:

  • Comandos nativos : ¿Qué mejor manera de hacer una copia de seguridad de los datos que utilizando las funciones disponibles a través del programa que crea los datos? Si este es el sistema operativo en sí mismo a través de un simple comando de copia de archivos o un comando de base de datos para producir un archivo binario restaurable, el programa fuente sabe mejor cómo hacer una copia de seguridad.
  • Control definitivo : dado que un script de línea de comandos sigue un procedimiento simple paso a paso, usted sabe exactamente lo que está sucediendo y puede modificar fácilmente el comportamiento.
  • Rápido : como todo es un comando nativo, nada está sujeto a interpretación. Una vez más, está utilizando los comandos proporcionados por el propio programa, por lo que la sobrecarga se mantiene al mínimo.
  • Potente : todavía tengo que ver una tarea de copia de seguridad que no se puede lograr a través de un script de línea de comandos … y he hecho algunas cosas funky. Aunque es posible que tenga que investigar un poco y probar y cometer errores si tiene necesidades realmente únicas, por lo general, las funciones y características integradas del lenguaje de secuencias de comandos que está utilizando son más que suficientes.
  • Gratis y flexible : Obviamente, un script de línea de comandos no cuesta nada (fuera del tiempo necesario para desarrollarlo), por lo que puede copiar sus scripts en cualquier número de máquinas y sistemas con poco o ningún tiempo o costo. Compare esto con el costo de comprar licencias para software de respaldo en varios servidores y / o máquinas de escritorio.

Una descripción rápida de la secuencia de comandos de lotes de copia de seguridad

La mayoría de la gente nunca ha aprendido a usar secuencias de comandos de línea de comandos, y se considera algo así como un "arte negro". Sin embargo, en realidad es algo bastante simple de aprender. Para demostrar el poder de la línea de comandos, proporciono un script por lotes simple de Windows que puede usar para hacer una copia de seguridad de sus datos importantes. Este script configurable y personalizable no requiere ningún conocimiento (o disposición para aprender) del lenguaje de scripting por lotes de Windows, pero si decide que desea obtener más información sobre scripting por lotes de Windows, encontrará que este script es un buen punto de partida .

Lo que hace el script de respaldo:

  1. Crea copias de seguridad incrementales completas o diarias (consulte la definición a continuación) de los archivos y carpetas que especifique en un archivo de texto de configuración separado (consulte a continuación).
    • Cuando se nombra una carpeta, se hace una copia de seguridad de esa carpeta y todas las subcarpetas.
    • Cuando se nombra un archivo, solo se hace una copia de seguridad de ese archivo.
  2. Comprime (comprime) los archivos respaldados. Una vez que se copian todos los archivos de los que se va a hacer copia de seguridad, se comprimen para ahorrar espacio. 7-Zip debe estar instalado en su sistema para que esto funcione.
  3. Fecha el archivo comprimido y lo mueve a una ubicación de almacenamiento. Después de comprimir los archivos de respaldo, el archivo resultante recibe un nombre de archivo de acuerdo con la fecha actual y luego se mueve a una ubicación de almacenamiento configurada, como una unidad externa o ubicación de red.
  4. Se limpia después de sí mismo. Después de completar todas las tareas, el script por lotes limpia todos los archivos temporales que creó.

Requisitos:
Windows 2000 / XP / 2003 / Vista o más reciente
7-Zip (es gratis)

Archivo de configuración:
El archivo de configuración es simplemente un archivo de texto que contiene archivos y carpetas para respaldar, ingresó un elemento de respaldo por línea. Este archivo debe llamarse "BackupConfig.txt" y debe ubicarse en la misma carpeta que el script de respaldo. Aquí hay un ejemplo de un archivo BackupConfig.txt (tenga en cuenta que el carácter "#" en la primera línea indica que la línea es un comentario; los comentarios siempre se ignoran cuando se ejecuta el script):

# Ingrese los nombres de archivo y carpeta, uno por línea.
C: \ Documentos y configuraciones \ Jason Faulkner \ Desktop C: \ Documentos y configuraciones \ Jason Faulkner \ Mis documentos \ Archivos importantes C: \ Scripts \ BackupScript.bat

El ejemplo anterior respaldaría el escritorio del usuario de Windows Jason Faulkner (y todas las carpetas en el escritorio), la carpeta llamada "Archivos importantes" dentro de Mis documentos (y todas las carpetas dentro de "Archivos importantes") y el archivo "BackupScript.bat" dentro el directorio C: \ Scripts.

Tipos de copias de seguridad:

  • Copia de seguridad completa: se incluye una copia completa de todos los archivos y carpetas (incluidas las subcarpetas) en la copia de seguridad.
  • Copia de seguridad incremental: cuando se proporciona una carpeta, solo los archivos creados o modificados en la fecha actual son
    respaldado. Cuando se proporciona un archivo, siempre se realiza una copia de seguridad, independientemente de cuándo se modificó.

La secuencia de comandos de lotes de Windows de copia de seguridad de datos

Quiero enfatizar que este script es muy básico, ya que todo lo que hace es crear copias de seguridad utilizando una simple copia de archivo. Hay algunas opciones de configuración que puede configurar:

  • La ubicación de almacenamiento de respaldo donde se almacenan los archivos de respaldo comprimidos resultantes.
  • El día de la semana se ejecuta la copia de seguridad completa (cualquier otro día ejecutaría una copia de seguridad incremental).
  • Ubicación donde está instalado 7-Zip en su computadora. El script se configura automáticamente para buscar en la ubicación predeterminada.

Si tiene alguna sugerencia o solicitud de funciones, comente a continuación. Realmente me encantaría hacer un artículo de seguimiento de esta publicación que presenta un script actualizado basado en la entrada del lector. Si necesita instrucciones sobre cómo "usar" este script o configurar una tarea programada, eche un vistazo a los enlaces debajo de la fuente del script.

Sin más preámbulos, aquí está:

Nota : Dado que las citas no se muestran correctamente a continuación (y como resultado pueden estropear el guión), he incluido un enlace de texto sin formato debajo del guión que puede usar para obtener una fuente precisa para copiar.

@ECHO OFF REM BackupScript REM Versión 1.01, actualizada: 2008-05-21 REM Por Jason Faulkner (articles132solutions.com) REM Realiza copias de seguridad completas o incrementales de carpetas y archivos configurados por el usuario. Uso de REM --- REM> BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM --- Opciones de configuración --- REM Ubicación de la carpeta donde desea almacenar el archivo de respaldo resultante. REM Esta carpeta debe existir. No ponga un '\' al final, esto se agregará automáticamente. REM Puede ingresar una ruta local, una letra de unidad externa (ej. F :) o una ubicación de red (ej. \\ server \ backups) SET BackupStorage = C: \ Backup REM ¿Qué día de la semana desea realizar un copia de seguridad completa en? REM Ingrese uno de los siguientes: dom, lunes, martes, miércoles, jueves, viernes, sábado, * REM Cualquier día de la semana que no sea el que se especifica a continuación se ejecutará una copia de seguridad incremental. REM Si ingresa '*', se ejecutará una copia de seguridad completa cada vez. SET FullBackupDay = * REM Ubicación donde está instalado 7-Zip en su computadora. REM El valor predeterminado está en una carpeta, '7-Zip' en su directorio de Archivos de programa. SET InstallLocationOf7Zip =% ProgramFiles% \ 7-Zip REM + -------------------------------------- --------------------------------- + REM | No cambie nada a continuación a menos que sepa lo que está haciendo. El | REM + ------------------------------------------------ ----------------------- + REM Variables de uso. SET exe7Zip =% InstallLocationOf7Zip% \ 7z.exe SET dirTempBackup =% TEMP% \ backup SET filBackupConfig = BackupConfig.txt Validación REM. SI NO EXISTE% filBackupConfig% (ECHO No se encontró el archivo de configuración, falta:% filBackupConfig% GOTO End) SI NO EXISTE "% exe7Zip%" (ECHO 7-Zip no está instalado en la ubicación:% dir7Zip% ECHO Actualice el directorio donde 7-Zip está instalado. GOTO End) REM Variables de respaldo. FOR / f "tokens = 1, 2, 3, 4 delims = /" %% a IN ('date / t') DO (SET DayOfWeek = %% a SET NowDate = %% d - %% b - %% c SET FileDate = %% b - %% c - %% d) IF {% FullBackupDay%} == {*} SET FullBackupDay =% DayOfWeek% IF / i {% FullBackupDay%} == {% DayOfWeek%} (SET txtBackup = SET completo swXCopy = / e) ELSE (SET txtBackup = SETX incremental swXCopy = / s / d:% FileDate%) ECHO Comenzando a copiar archivos. SI NO EXISTE "% dirTempBackup%" MKDIR "% dirTempBackup%" FOR / f "skip = 1 tokens = *" %% A IN (% filBackupConfig%) DO (SET Current = %% ~ A IF NOT EXIST "! Current! "(¡ERROR DE ECHO! ¡No encontrado:! Actual!) ELSE (Copia de ECHO:! Actual! SET Destino =% dirTempBackup% \! Actual: ~ 0, 1! %% ~ pnxA REM Determina si la entrada es un archivo o directorio. SI "%% ~ xA" == "" (Directorio REM. XCOPY "! Actual!" "! Destino!" / V / c / i / g / h / q / r / y% swXCopy%) ELSE (Archivo REM . COPY / v / y "! Current!" "! Destination!"))) ECHO Finalizó la copia de los archivos. ECO. SET BackupFileDestination =% BackupStorage% \ Backup_% FileDate% _% txtBackup% .zip REM Si el archivo de copia de seguridad existe, elimínelo a favor del nuevo archivo. SI EXISTE "% BackupFileDestination%" DEL / f / q "% BackupFileDestination%" ECHO Comprimiendo archivos respaldados. (Nueva ventana) REM Comprime archivos usando 7-Zip en un proceso de menor prioridad. INICIE "Comprimir copia de seguridad. NO CIERRE" / belownormal / wait "% exe7Zip%" a -tzip -r -mx5 "% BackupFileDestination%" "% dirTempBackup% \" ECHO Terminó de comprimir los archivos respaldados. ECO. ECHO Limpieza. SI EXISTE "% dirTempBackup%" RMDIR / s / q "% dirTempBackup%" ECHO. : Fin de ECHO Finalizado. ECO. ENDLOCAL

La fuente de texto sin formato está disponible aquí: copia de seguridad

Si necesita ayuda para comenzar a implementar este script, aquí hay un par de enlaces para ayudarlo:

  • Cómo crear un archivo por lotes
  • Cómo crear una tarea programada de Windows

Este es el mismo script que uso para hacer una copia de seguridad de mi computadora diariamente (con un par de modificaciones, por supuesto), por lo que sé que funciona muy bien. Espero que le sea útil.

¡Disfrutar!

Script por lotes de Windows para respaldar datos