elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Script Comprimir Actualizar Nuevo Comprimido
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Script Comprimir Actualizar Nuevo Comprimido  (Leído 3,668 veces)
Sonco

Desconectado Desconectado

Mensajes: 18



Ver Perfil
Script Comprimir Actualizar Nuevo Comprimido
« en: 11 Agosto 2021, 05:58 am »

Hola, su guia porfavor amigos:

Tengo una Carpeta MAESTRA

CarpetaMaestro
Archivo1
Archivo2
Archivo3

Esta CarpetaMaestro lo comprimo al Backup
CarpetaMaestro ---> CarpetaMaestro01.zip

Despues de 1 mes aprox. a esta carpeta le agrego x archivos, por ejemplo:

CarpetaMaestro
Archivo1
Archivo2
Archivo3
+Archivo4
+Archivo5
+Archivo6

Por ende en el backup, ya existe CarpetaMaestro01.zip (Archivo1, Archivo2, Archivo3)

Como puedo generar un nuevo CarpetaMaestro02....zip ?
Donde solo los nuevos archivos se agregen a este nuevo *.zip sin afectar a CarpetaMaestro01.zip?

Son gran cantidad de archivos y 20TB aprox, y lo pongo como ejemplo.
Tanto en 7zip como en Winrar solo hay actualizar archivos al mismo zip, pero me generaria nuevas subidas tremendas de los nuevos *.zip

Zip, es solo como ejemplo, puede ser cualquier extension de comprimido.

Muchas gracias de antemano.


En línea

۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
▓▒░░▓▒░░▓▒░░▓▒░░          Oscar Orlando Sonco.          ░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓
❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅
@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


Turn off the red ligth


Ver Perfil WWW
Re: Script Comprimir Actualizar Nuevo Comprimido
« Respuesta #1 en: 11 Agosto 2021, 12:46 pm »

Con el comando 7z es muy sencillo.

Pon que tengo 6 archivos en una carpeta:
archivo1.txt  archivo3.txt  archivo5.txt
archivo2.txt  archivo4.txt  archivo6.txt

Creo el primer backup con los 3 primeros archivos:
7z a archivos.7z archivo1.txt archivo2.txt archivo3.txt

Ahora tengo en la carpeta:
archivo1.txt  archivo3.txt  archivo5.txt  archivos.7z
archivo2.txt  archivo4.txt  archivo6.txt

Dentro de un mes quiero agregar los archivos 4 5 y 6:
7z a archivos.7z archivo4.txt archivo5.txt archivo6.txt

Sigo teniendo los mismos archivos en la carpeta, solo que ahora archivos.7z tiene dentro los 6 archivos comprimidos.

Para descomprimirlos:
mkdir archivosExtraidos
7z x archivos.7z -o"./archivosExtraidos"

Ya tienes los 6 archivos descomprimidos en la carpeta archivosExtraidos.

PD: En el manual de 7z tienen un aviso importante, que entiendo que también se aplica a winzip, winrar y desmás utilidades de compresióm que no están diseñadas explícitamente para copias de seguridad.

Cita de: man 7z
Backup and limitations
       DO NOT USE the 7-zip format for backup purpose on Linux/Unix because :
        - 7-zip does not store the owner/group of the file.

       On Linux/Unix, in order to backup directories you must use tar :
        - to backup a directory  : tar cf - directory | 7za a -si
       directory.tar.7z
        - to restore your backup : 7za x -so directory.tar.7z | tar xf -

       If you want to send files and directories (not the owner of file) to
       others Unix/MacOS/Windows users, you can use the 7-zip format.

         example : 7za a directory.7z  directory

       Do not use "-r" because this flag does not do what you think.

       Do not use directory/* because of ".*" files (example : "directory/*"
       does not match "directory/.profile")

Cita de: traducido
Respaldos y límites
       NO USES el formato 7z para respaldos en Linux/Unix porque :
        - 7z no almacena el owner/group del archivo.

       En Linux/Unix, para respaldar carpetas debes usar tar :
        - para respaldar una carpeta  : tar cf - carpeta | 7za a -si
       carpeta.tar.7z
        - para restaurar la carpeta : 7za x -so carpeta.tar.7z | tar xf -

       Si quieres enviar archivos y carpetas (sin el owner del archivo) a otros usuarios Unix/MacOS/Windows, puedes usar el formato 7z.
         ejemplo : 7za a carpeta.7z  carpeta

       No utilices "-r" porque este argumento no hace lo que piensas.

       No utilices carpeta/* por los archivos ".*" (ejemplo: "carpeta/*" no encuentra
       "carpeta/.profile")


« Última modificación: 11 Agosto 2021, 13:02 pm por @XSStringManolo » En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.176



Ver Perfil
Re: Script Comprimir Actualizar Nuevo Comprimido
« Respuesta #2 en: 11 Agosto 2021, 14:46 pm »

Me parece que el más sencillo sería rar.exe que viene incluido con WinRar pero solo trabaja con archivos .rar. Todos los archivos en Windows al crearlos o modificarlos se marcan con el atributo Archivo (para archivar), esto es utilizado por una opción se rar.exe para hacer BackUps.

La idea es en primera instancia comprimir los archivos y quitarles el atributo de Archivo, luego comprimir solo los archivos sin el atributo Archivo y quitar dicho atributo a estos nuevos archivos:

Citar
:: Creando los primeros archivos y listándolos

C:\Users\EdSon\Desktop>MD CarpetaMaestro

C:\Users\EdSon\Desktop>For /L %a In (1,1,3) Do @Echo archivo%a > CarpetaMaestro\Archivo%a

C:\Users\EdSon\Desktop>Dir /B CarpetaMaestro
Archivo1
Archivo2
Archivo3

:: Comprimiendo y quitando el atributo Archivo

C:\Users\EdSon\Desktop>rar a -ac CarpetaMaestro01.rar CarpetaMaestro\

Creando el archivo CarpetaMaestro01.rar

Añadiendo    CarpetaMaestro\Archivo1                                     Aceptar
Añadiendo    CarpetaMaestro\Archivo2                                     Aceptar
Añadiendo    CarpetaMaestro\Archivo3                                     Aceptar

Borrando atributos... 100%
Listo

:: Agregando nuevos archivos y listándolos

C:\Users\EdSon\Desktop>For /L %a In (4,1,6) Do @Echo archivo%a > CarpetaMaestro\Archivo%a

C:\Users\EdSon\Desktop>Dir /B CarpetaMaestro
Archivo1
Archivo2
Archivo3
Archivo4
Archivo5
Archivo6

:: Comprimiendo los archivos sin atributo Archivo y quitando dicho atributo

C:\Users\EdSon\Desktop>rar a -ao -ac CarpetaMaestro02.rar CarpetaMaestro\

Creando el archivo CarpetaMaestro02.rar

Añadiendo    CarpetaMaestro\Archivo4                                     Aceptar
Añadiendo    CarpetaMaestro\Archivo5                                     Aceptar
Añadiendo    CarpetaMaestro\Archivo6                                     Aceptar

Borrando atributos... 100%
Listo

Esa sería de las más sencillas, otras opciones pueden ser el guardar un registro de los archivos comprimidos y decirle al compresor que comprima todo menos los archivos que figuren en dicha lista. Esa lista se puede crear con un Dir /B e ir actualizando cada vez que vas a comprimir.

También se pueden usar los atributos de fecha de modificación o creación para hacer exclusiones, y otra más que se me ocurre es Listar el contenido del comprimido y decirle al compresor que comprima todo menos dicha lista, en rar.exe sería así:

Citar
:: Listando el contenido de la carpeta

C:\Users\EdSon\Desktop>Dir /B CarpetaMaestro\
Archivo1
Archivo2
Archivo3
Archivo4
Archivo5
Archivo6

:: Listando el contenido de CarpetaMaestro01.rar

C:\Users\EdSon\Desktop>rar lb CarpetaMaestro01.rar
CarpetaMaestro\Archivo1
CarpetaMaestro\Archivo2
CarpetaMaestro\Archivo3

:: Comprimiendo solo los archivos no presentes en CarpetaMaestro01.rar

C:\Users\EdSon\Desktop>rar lb CarpetaMaestro01.rar | rar a -x@ CarpetaMaestro02.rar CarpetaMaestro\

Creando el archivo CarpetaMaestro02.rar

Añadiendo    CarpetaMaestro\Archivo4                                     Aceptar
Añadiendo    CarpetaMaestro\Archivo5                                     Aceptar
Añadiendo    CarpetaMaestro\Archivo6                                     Aceptar
Listo

:: Listando el contenido de CarpetaMaestro02.rar

C:\Users\EdSon\Desktop>rar lb CarpetaMaestro02.rar
CarpetaMaestro\Archivo4
CarpetaMaestro\Archivo5
CarpetaMaestro\Archivo6

Todo esto se debería de poder hacer también con 7z, aunque me parece que no tiene un listado simple, solo me salen listados detallados con muchas otras cosas más, habría que ver si hay opción para un listado simple o parsear el listado.
En línea

Sonco

Desconectado Desconectado

Mensajes: 18



Ver Perfil
Re: Script Comprimir Actualizar Nuevo Comprimido
« Respuesta #3 en: 11 Agosto 2021, 22:49 pm »

Me parece que el más sencillo sería rar.exe que viene incluido con WinRar pero solo trabaja con archivos .rar. Todos los archivos en Windows al crearlos o modificarlos se marcan con el atributo Archivo (para archivar), esto es utilizado por una opción se rar.exe para hacer BackUps.

La idea es en primera instancia comprimir los archivos y quitarles el atributo de Archivo, luego comprimir solo los archivos sin el atributo Archivo y quitar dicho atributo a estos nuevos archivos:...

Es la solucion perfecta!!!
Muchas gracias, te deseo un gran dia!!!
En línea

۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞۞
▓▒░░▓▒░░▓▒░░▓▒░░          Oscar Orlando Sonco.          ░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓░░▒▓
❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅❅
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines