Script Bash: división del archivo .TAR en partes más pequeñas

esto es parte de un script .sh que necesito editar para hacer algunas copias de seguridad y cargarlas en Dropbox, pero necesito dividir esa copia de seguridad en partes más pequeñas.

NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tgz"

# Backup mysql.
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"
tar cfz "$DESTFILE" "$NOW-Databases.sql"

Y luego la función para cargar la copia de seguridad en DropBox ....

dropboxUpload "$DESTFILE"

¿Cómo puedo dividir el archivo .tar en partes más pequeñas (por ejemplo, de 100 o 200 MB de tamaño) y obtener el nombre y la cantidad de esos archivos para cargarlos con la función dropboxUpload?

preguntado el 28 de agosto de 11 a las 01:08

2 Respuestas

Podrías usar split. Por ejemplo, esto:

split -b500k $DESTFILE ${DESTFILE}-

se dividirá $DESTFILE en piezas de 500 KB llamadas:

${DESTFILE}-aa
${DESTFILE}-ab
${DESTFILE}-ac
...

Entonces podrías recorrerlos con algo como:

for x in ${DESTFILE}-*
do
    dropboxUpload $x
end

Respondido 28 ago 11, 06:08

¿Cómo puedo unirlos en Windows para extraer después de eso? - Marcas

@Mark: Creo que usarías copy /a parts... dest pero mi conocimiento de Windows es bastante débil. - mu es demasiado corto

Para unir archivos binarios en Windows, use

copy /b parts.. dest

/ a es para archivos de texto ASCII.

Respondido 29 ago 11, 12:08

esto realmente no tiene nada que ver con la pregunta original. - mandreko

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.