Tar usando barra de progresso e manipulando multi-volumes

2

Estou tentando criar um tar de um grande volume LVM em várias unidades externas. Essa parte está resolvida. Agora, porque é um processo longo, eu gostaria de uma barra de progresso. Dos excelentes artigos aqui, cheguei perto.

O problema é que a barra PV é encerrada depois que o primeiro volume é preenchido. Eu gostaria de PV para continuar atualizando depois que os discos são trocados. Alguém tem uma ideia sobre como abordar isso?

Veja o que eu tentei.

Código ExtBackup.sh:

#!/bin/sh

changedisk()
{
# This routine is called when tar runs out of disk space
# It simply waits for operator to change and mount disks
# then updates the file handle with a new volume number.
echo "Change disks now!" 
read -p "Press <enter> when new disk is mounted. ..." NULL
echo ""

# Update the file name with the new volume number
name='expr $TAR_ARCHIVE : '\(.*\)-.*''
echo ${name:-$TAR_ARCHIVE}-Vol$TAR_VOLUME.tar >&$TAR_FD
}

###########
## MAIN  ##
###########

# Test for recursive call to change disks
if [ "$1" = 'changedisk' ]; then 
        changedisk
        exit 0;
fi

# If this is initial call, set SIZE to calculate bytes in source    
SIZE='du -sb *Folder_Name* | cut -f 1'

# Now TAR it, using Multi-volume option and pipe through PV for progress bar
tar -cM -F 'sh ExtBackup.sh changedisk' *Folder_Name* | \
pv -s ${SIZE} > LVMBackup-$(date +%m-%d-%y)-Vol1.tar
    
por Glen Kauffman 08.11.2014 / 20:49

1 resposta

-1

Talvez tente -f - antes de -F forçar o tar a enviar todos os seus dados de saída para stdout?

    
por 11.11.2014 / 21:01