Pv - Εμφάνιση προόδου για δεδομένα [Copy/Backup/Compress] στο Linux


Κατά τη δημιουργία αντιγράφων ασφαλείας και την αντιγραφή/μετακίνηση μεγάλων αρχείων στο σύστημά σας Linux, μπορεί να θέλετε να παρακολουθείτε την πρόοδο μιας τρέχουσας λειτουργίας. Πολλά εργαλεία τερματικού δεν έχουν τη λειτουργικότητα που να σας επιτρέπουν να προβάλλετε πληροφορίες προόδου όταν μια εντολή εκτελείται σε έναν σωλήνα.

Σε αυτό το άρθρο, θα εξετάσουμε μια σημαντική εντολή Linux/Unix που ονομάζεται pvPipe Viewer.

Το Pv είναι ένα εργαλείο που βασίζεται σε τερματικό που σας επιτρέπει να παρακολουθείτε την πρόοδο των δεδομένων που αποστέλλονται μέσω ενός σωλήνα. Όταν χρησιμοποιείτε την εντολή pv, σας δίνει μια οπτική εμφάνιση των ακόλουθων πληροφοριών:

  • Ο χρόνος που έχει παρέλθει.
  • Το ποσοστό που ολοκληρώθηκε περιλαμβάνει μια γραμμή προόδου.
  • Εμφανίζει την τρέχουσα ταχύτητα διεκπεραίωσης.
  • Το σύνολο των δεδομένων που μεταφέρθηκαν.
  • και το ETA (εκτιμώμενος χρόνος).

Πώς να εγκαταστήσετε το pv Command στο Linux;

Η εντολή pv δεν είναι εγκατεστημένη από προεπιλογή στις περισσότερες διανομές Linux, επομένως μπορείτε να την εγκαταστήσετε ακολουθώντας τα παρακάτω βήματα.

Εγκαταστήστε pv σε Linux που βασίζεται σε RHEL

Πρώτα, πρέπει να ενεργοποιήσετε το αποθετήριο EPEL και στη συνέχεια να εκτελέσετε την ακόλουθη εντολή yum ή dnf για να το εγκαταστήσετε.

yum install pv
OR
dnf install pv          

Εγκαταστήστε το pv σε Linux που βασίζεται στο Debian

sudo apt-get install pv

Εγκαταστήστε το pv σε άλλες διανομές Linux

sudo emerge -a pv        [On Gentoo Linux]
sudo apk add pv          [On Alpine Linux]
sudo pacman -S pv        [On Arch Linux]
sudo zypper install pv   [On OpenSUSE]    

Πώς μπορώ να χρησιμοποιήσω την εντολή pv στο Linux;

Το pv χρησιμοποιείται κυρίως με άλλα προγράμματα που δεν έχουν τη δυνατότητα παρακολούθησης της προόδου μιας τρέχουσας λειτουργίας. Μπορείτε να το χρησιμοποιήσετε, τοποθετώντας το σε μια διοχέτευση μεταξύ δύο διεργασιών, με τις κατάλληλες διαθέσιμες επιλογές.

Η τυπική είσοδος του pv θα μεταφερθεί στην τυπική του έξοδο και η πρόοδος (έξοδος) θα εκτυπωθεί σε τυπικό σφάλμα. Έχει παρόμοια συμπεριφορά με την εντολή cat στο Linux.

Η σύνταξη της εντολής pv είναι η εξής:

pv file
pv options file
pv file > filename.out
pv options | command > filename.out
comand1 | pv | command2 

Οι επιλογές που χρησιμοποιούνται με το pv χωρίζονται σε τρεις κατηγορίες, διακόπτες οθόνης, τροποποιητές εξόδου και γενικές επιλογές.

Επιλογές τροποποιητών οθόνης Pv

Ορισμένες επιλογές βρίσκονται κάτω από τους τροποποιητές οθόνης.

  • Για να ενεργοποιήσετε τη γραμμή εμφάνισης, χρησιμοποιήστε την επιλογή -p.
  • Για να δείτε τον χρόνο που έχει παρέλθει, χρησιμοποιήστε την επιλογή --timer.
  • Για να ενεργοποιήσετε το χρονόμετρο ETA που προσπαθεί να μαντέψει πόσος χρόνος θα χρειαστεί πριν την ολοκλήρωση μιας λειτουργίας, χρησιμοποιήστε την επιλογή --eta. Η εικασία βασίζεται σε προηγούμενους ρυθμούς μεταφοράς και στο συνολικό μέγεθος δεδομένων.
  • Για να ενεργοποιήσετε έναν μετρητή τιμών, χρησιμοποιήστε την επιλογή --rate.
  • Για να εμφανίσετε τη συνολική ποσότητα δεδομένων που έχουν μεταφερθεί μέχρι στιγμής, χρησιμοποιήστε την επιλογή --bytes.
  • Για να εμφανίσετε πληροφορίες προόδου ακέραιου ποσοστού αντί για οπτική ένδειξη, χρησιμοποιήστε την επιλογή -n. Αυτό μπορεί να είναι καλό όταν χρησιμοποιείτε το pv με την εντολή διαλόγου για εμφάνιση της προόδου σε ένα πλαίσιο διαλόγου.

Επιλογές τροποποιητών οθόνης Pv

Ορισμένες επιλογές βρίσκονται κάτω από τους τροποποιητές εξόδου.

  • Για να περιμένετε μέχρι να μεταφερθεί το πρώτο byte πριν εμφανιστούν οι πληροφορίες προόδου, χρησιμοποιήστε την επιλογή --wait.
  • Για να υποθέσουμε ότι ο συνολικός όγκος δεδομένων που θα μεταφερθεί είναι SIZE byte κατά τον υπολογισμό του ποσοστού και του ETA, χρησιμοποιήστε την επιλογή --size SIZE.
  • Για να καθορίσετε δευτερόλεπτα μεταξύ των ενημερώσεων, χρησιμοποιήστε την επιλογή --interval SECONDS.
  • Χρησιμοποιήστε την επιλογή --force για να αναγκάσετε μια λειτουργία. Αυτή η επιλογή αναγκάζει το pv να εμφανίζει γραφικά όταν το τυπικό σφάλμα δεν είναι τερματικό.
  • Οι γενικές επιλογές είναι --help για την εμφάνιση πληροφοριών χρήσης και –έκδοση για εμφάνιση πληροφοριών έκδοσης.

Εντολή Pv με Παραδείγματα στο Linux

1. Όταν δεν περιλαμβάνεται καμία επιλογή, οι εντολές pv εκτελούνται με τα προεπιλεγμένα -p, -t, -e, -r και -b.

Για παράδειγμα, για να αντιγράψετε το αρχείο opensuse.vdi στο /tmp/opensuse.vdi, εκτελέστε αυτήν την εντολή και παρακολουθήστε τη γραμμή προόδου στο screencast.

pv opensuse.vdi > /tmp/opensuse.vdi

2. Για να δημιουργήσετε ένα αρχείο zip από το αρχείο /var/log/syslog, εκτελέστε την ακόλουθη εντολή.

pv /var/log/syslog | zip > syslog.zip

3. Για να μετρήσετε τον αριθμό των γραμμών, των λέξεων και των byte στο αρχείο /etc/hosts ενώ εμφανίζεται μόνο η γραμμή προόδου, εκτελέστε αυτήν την παρακάτω εντολή.

pv -p /etc/hosts | wc

4. Παρακολουθήστε την πρόοδο της δημιουργίας ενός αρχείου αντιγράφου ασφαλείας χρησιμοποιώντας το βοηθητικό πρόγραμμα tar.

tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)

5. Στο παράδειγμα, χρησιμοποιούμε την εντολή dd για να γράψουμε το αρχείο ISO στη μονάδα flash USB:

dd if=debian-10.11.0-amd64-DVD-1.iso | pv | dd of=/dev/sda bs=4M

6. Χρησιμοποιώντας μαζί το εργαλείο pv και διάλογος που βασίζεται σε τερματικό για να δημιουργήσετε μια γραμμή προόδου διαλόγου ως εξής.

tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70

Περίληψη

Αυτό είναι ένα καλό εργαλείο που βασίζεται σε τερματικό που μπορείτε να χρησιμοποιήσετε με εργαλεία που δεν έχουν τη δυνατότητα να παρακολουθείτε την πρόοδο λειτουργιών όπως η αντιμετώπιση/μετακίνηση/δημιουργία αντιγράφων ασφαλείας αρχείων, για περισσότερες επιλογές, ελέγξτε το man pv .

Ελπίζω να σας φανεί χρήσιμο αυτό το άρθρο και να μπορείτε να δημοσιεύσετε ένα σχόλιο εάν έχετε να προσθέσετε ιδέες σχετικά με τη χρήση της εντολής pv. Και αν λάβετε σφάλματα κατά τη χρήση του, μπορείτε επίσης να αφήσετε ένα σχόλιο.