Tar-Backup mit Fortschrittsbalken

Tar-Backup mit Fortschrittsbalken

Ich möchte meinem Tar-Backup-Befehl einen Fortschrittsbalken hinzufügen. Ich habe herausgefunden, dass derBarEin Shell-Skript sollte dazu in der Lage sein, aber ich kann den richtigen Befehl nicht herausfinden.

sudo tar pzcf - /media/data | bar > /media/backups/backup.tar.gz

Mit dem obigen Befehl konnte ich einige Informationen anzeigen, aber noch keinen Fortschrittsbalken.

Antwort1

Tut mir leid, aber das ist nicht möglich. Aus der Datei barselbst:

Synopsis:
  'bar' works just like 'cat', but shows a progress bar in ASCII art on stderr.
  The script's main function is meant to be usable in any Bourne shell to be
  suitable for install scripts without the need for any additional tool.

Das Problem besteht darin, dass zum Anzeigen des Fortschrittsbalkens barzunächst die Größe der Datei bekannt sein muss.

FürExtrahierenein Archiv, das ist kein Problem: Wenn groß backup.tarist 100 MiBund 50 MiBbisher verarbeitet wurde, sind wir bei 50 %.

FürErstellenein Archiv, barliest aus stdin, was für alle praktischen Zwecke unendlich ist. Da dieDokumentationsagt:

Unendliche Streams sind nicht schön: Der Balken wird nur bei 0% und bei 100% angezeigt. [...]


Die einzige Möglichkeit, Fortschrittsbalken für Sicherungszwecke anzuzeigen, die mir einfällt (abgesehen von der Erstellung einer benutzerdefinierten Version vonTeer mit Balken) Ist:

  1. Berechnen Sie die Gesamtgröße der Dateien /media/data.

  2. Erstellen backup.tarund fügen Sie die Dateien /media/datanacheinander an.

  3. Berechnen und zeigen Sie nach jeder Datei den aktuellen Prozentsatz an.

  4. gzip backup.tar(Siedürfenverwenden tar).

Beispiel:

TOTAL=$(du -b /media/data | grep -oP "^\d+")
CURRENT=0
echo "Archiving:"
IFS="
"
for FILE in $(find /media/data -type f); do 
    tar rf backup.tar $FILE
    CURRENT=$(($CURRENT+$(du -b $FILE | grep -oP "^\d+")))
    echo -en "\r"$((100*($CURRENT-1)/$TOTAL+1))"%"
done
echo
echo "Compressing:"
bar backup.tar | gzip > backup.tar.gz
rm backup.tar

Vorsicht:

  • Dies wird Ihren Sicherungsvorgang wahrscheinlich verlangsamen.
  • Dateinamen dürfen keine Zeilenumbruchzeichen enthalten.

verwandte Informationen