Memorias de un Técnico Ligero

Ver más publicaciones del año 2020

Un scritp para backup de usuarios en Python

Si sos ténico en sistemas Windows y tenés la derechos de aministrador con esto podés hacer un backup sólo con la ip, el usuario y el fantástico Robocopy. Una genialidad para no tener que ir a la carpeta del usuario y copiar todo. Esto lo hacer por vos y discrimina algunos archivos molestos.

Como hoy estoy dicharachero voy a explicar paso por paso (es mentira, lo hago porque el script es corto):
-Primero importamos el módulo subprocess, fundamental para llamar a instancias del S.O.
-Después englobamos todo en una función.
-Pedimos la ip con un input
-Pedimos el usuario y el nombre donde va a ir (tiene que existir unidad D en tu pc en este caso)
-La variable ruta arma todo con lo que pusiste arriba, más c\$/users, que es donde están todos los usuarios en Windows (hasta el día de hoy, W10)
-El destino, donde vas a backupear.

-La variable copia lo que hace es llamar a Robocopy desde la funcion subprocess.call y le dice que use la ruta origen y la copie a destino, excluyendo el archivo NTuser y el direcctorio (al pedo claro está para este caso) APPdata. Está comentado, pero si querés registro podés crear al final un TXT.

Listo. Tirás la copia y en la variable te va a dar un número. Si es 9 anduvo todo bien. Si es 8, ya había algo en la carpeta, y si es 16 alguna cagada hiciste.

Finalmente, llamo a la función. Eso es todo.

¡Ahí va!

import subprocess

def backup():

    laip= input ( nIngrese la ip: )
    usuario= input (Ingrese el usuario para backup: )
    carpeta= input (Nombre carpeta destino: )

    ruta = (//+laip+//c$/users/+usuario+/)

    destino = (d:/backups/+carpeta+/)

    copia = subprocess.call(robocopy  +ruta+   +destino +  /S /XF NTUSER.* /XD Appdata ) # si quiero registro —- /LOG:d:log-usuario.txt

    if copia == 9: #son numeros que da el sistema para exito, igualdad o error
        print (Backup realizado con exito…’)
    elif copia == 8:
        print (Ya habia contenido en esa carpeta :()
        print (Escribi backup() y empeza de nuevo)
    elif copia == 16:
        print (Por algun motivo fallo :()
        print (Escribi backup() y empeza de nuevo)

backup()
Arriba


Escrito por: , el día: