1 votos

untarring un archivo con la restricción de tamaño en la carpeta extraída para evitar que la bomba del cierre relámpago

En mi usuario de la aplicación envía un ' tgz; archivo que luego es ' untar'ed para extraer el contenido.

Queremos evitar que a nuestro ser de bomba de zip y por lo tanto queremos dejar extracto con gracia sin interrumpir la aplicación.

¿Hay algún límite que puedo poner en la carpeta extraída? No quiero confiar en meta datos en carpeta zip.

¿Hay una opción de línea de comandos que yo te puedo proporcionar al comando tar mientras ONU Tara?

0voto

Khaled Puntos 21517

Así pues, usted desea para iniciar la onu-tarring el archivo y se detenga cuando se supera un tamaño específico. Usted puede escribir un simple script con las siguientes características de tar:

  1. Obtener la lista de archivos en el archivo con: tar -tf mytar.tar.gz.
  2. Lazo sobre la devuelve la lista de archivos y extraer de ellos uno por uno.
    • Extraer un único archivo/carpeta con: tar -xvf mytar.tar.gz path/to/file.
    • Compruebe extraídos de los archivos/carpetas de tamaño.
    • Romper el bucle cuando el extracto de datos excede el tamaño específico.

Aquí es un simple script para hacerlo:

#!/bin/bash

archive=$1
max_size=1048576
dest_dir=/path/to/dest

for f in `tar -tvf $archive | grep -v "^d" | awk '{ print $NF }'`; do
        tar -xvf $archive -C $dest_dir $f
        s=`du -sb $dest_dir | awk '{ print $1 }'`
        if [ $s -gt $max_size ] ; then
                echo "Interrupt untar"
                break
        fi
done

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: