Tarは進行状況バーを使用して複数のボリュームを処理します。

Tarは進行状況バーを使用して複数のボリュームを処理します。

複数の外部ドライブに大容量LVMボリュームをtarとして保存しようとしています。その部分は解決されました。これでこれは長いプロセスなので、進行状況バーが必要です。ここの素晴らしい記事を通して近づいています。

問題は、最初のボリュームが満たされた後に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

答え1

たぶんtarがすべての出力データをstdoutに送信する-f -前に強制してみてください。-F

関連情報