Я пытаюсь создать tar большого тома LVM на нескольких внешних дисках. Эта часть решена. Теперь, потому что это долгий процесс, я бы хотел индикатор выполнения. Из отличных статей здесь я подобрался близко.
Проблема в том, что PV бар закрывается после заполнения первого тома. Я бы хотел, чтобы PV продолжал обновляться после замены дисков. У кого-нибудь есть идеи о том, как к этому подойти?
Вот что я попробовал. Я думаю, что проблема в последней строке кода. Я не уверен, что эта стратегия на самом деле будет работать с многотомными.
Код 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