Advertisement
JPablos

Backup Recursivo con privilegios

Mar 9th, 2025 (edited)
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.11 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. """
  3. Creado el Dom 09 Mar 2025 22:13:18
  4.  
  5. Autor: @JP
  6. """
  7.  
  8. import ctypes
  9. import sys
  10. import shutil
  11. import os
  12.  
  13.  
  14. def es_admin():
  15.     """Verifica si el script se está ejecutando como Administrador."""
  16.     try:
  17.         return ctypes.windll.shell32.IsUserAnAdmin()
  18.     except OSError:  # Captura excepciones específicas
  19.         return False
  20.  
  21.  
  22. def ejecutar_como_admin():
  23.     """Ejecuta el script con permisos de Administrador."""
  24.     ctypes.windll.shell32.ShellExecuteW(
  25.         None, "runas", sys.executable, " ".join(sys.argv), None, 1)
  26.  
  27.  
  28. def hacer_copia_de_seguridad(carpeta_original, carpeta_backup):
  29.     """Crea una copia de seguridad de una carpeta en otra ubicación.
  30.  
  31.    Si la carpeta de backup ya existe, la sobrescribe.
  32.  
  33.    :param carpeta_original: Ruta de la carpeta original.
  34.    :param carpeta_backup: Ruta de la carpeta de backup.
  35.    """
  36.     try:
  37.         # Verificar si la carpeta de backup ya existe
  38.         if os.path.exists(carpeta_backup):
  39.             print(
  40.                 "La carpeta de backup ya existe. "
  41.                 f"Eliminando: {carpeta_backup}")
  42.             shutil.rmtree(carpeta_backup)  # Eliminar la carpeta de backup
  43.  
  44.         # Copiar la carpeta original a la carpeta de backup
  45.         shutil.copytree(carpeta_original, carpeta_backup)
  46.         print(f"Copia de seguridad creada en: {carpeta_backup}")
  47.  
  48.     except (OSError, shutil.Error) as e:  # Captura excepciones específicas
  49.         print(f"Error al crear la copia de seguridad: {e}")
  50.  
  51.  
  52. if __name__ == "__main__":
  53.     if not es_admin():
  54.         print("El script no se está ejecutando como Administrador."
  55.               " Solicitando permisos...")
  56.         ejecutar_como_admin()
  57.     else:
  58.         print("El script se está ejecutando como Administrador.")
  59.  
  60.         # Definir rutas
  61.         # Cambia esto por la ruta de tu carpeta
  62.         CARPETA_ORIGINAL = "C:/ruta/a la/carpeta"
  63.         # Cambia esto por la ruta de backup
  64.         CARPETA_BACKUP = "C:/ruta/a la/carpeta_backup"
  65.  
  66.         # Crear la copia de seguridad
  67.         hacer_copia_de_seguridad(CARPETA_ORIGINAL, CARPETA_BACKUP)
  68.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement