Πώς να ελέγξετε την πρόοδο εκτέλεσης εντολών στο Linux
Μερικές φορές, κατά την αντιγραφή ενός μεγάλου αρχείου, όπως μια ταινία ή μια εικόνα λειτουργικού συστήματος, η εντολή cp
διαρκεί περισσότερο από το αναμενόμενο με βάση το φορτίο στο σύστημά σας. Δεδομένου ότι δεν λέει την πρόοδο της επιχείρησης, είναι δύσκολο να καταλάβουμε τι ακριβώς συμβαίνει.
Σε σενάρια όπως αυτά, μια εντολή όπως το cv
θα μπορούσε να βοηθήσει πολύ, καθώς όχι μόνο σας επιτρέπει να γνωρίζετε την πρόοδο της λειτουργίας, αλλά είναι επίσης ικανή να εμφανίσετε τον υπόλοιπο χρόνο. Σε αυτό το άρθρο, θα συζητήσουμε την εντολή μαζί με μερικά χρήσιμα παραδείγματα.
Εισαγωγή
Η εντολή cv
είναι ένα βοηθητικό πρόγραμμα που εξετάζει ειδικά βασικές εντολές coreutils, όπως cp
, mv
, dd
, tar
, cat
και άλλα, που τρέχουν αυτήν την περίοδο στο σύστημά σας και εμφανίζουν το ποσοστό προόδου τους. Παρόλο που είναι ειδικά για το Linux, είναι διαθέσιμη και μια θύρα Mac OSX.
Λήψη και εγκατάσταση
Για να κατεβάσετε και να εγκαταστήσετε την εντολή cv
, κατευθυνθείτε στο αποθετήριο Github και κατεβάστε το πακέτο προέλευσης (το όνομα του αρχείου που κατεβάσατε στην περίπτωση μου ήταν "cv-master.zip"). Αφού γίνει, εξαγάγετε τα αρχεία χρησιμοποιώντας την ακόλουθη εντολή:
unzip cv-master.zip
Εισαγάγετε τον κατάλογο "cv-master" και εκτελέστε τις ακόλουθες εντολές για να δημιουργήσετε το πακέτο και να εγκαταστήσετε το δυαδικό:
κάντε κάνει την εγκατάσταση
Σημειώστε ότι η εντολή cv
εξαρτάται από τη βιβλιοθήκη "ncurses", επομένως ίσως χρειαστεί να εγκαταστήσετε αντίστοιχα πακέτα τα οποία μπορούν να γίνουν με την εκτέλεση της ακόλουθης εντολής:
sudo apt-get εγκαταστήστε ncurses-dev
Ένα άλλο σημείο που αξίζει να σημειωθεί είναι ότι μετά την εγκατάσταση το δυαδικό αρχείο μεταβαίνει σε "/ usr / local / bin", οπότε βεβαιωθείτε ότι η διαδρομή προστίθεται στο περιβάλλον του συστήματός σας, διαφορετικά το κέλυφος δεν θα μπορεί να εντοπίσει την εντολή όταν εκτελείτε το. Μια εναλλακτική λύση θα ήταν να αλλάξετε τον τρέχοντα κατάλογο σε "/ usr / local / bin" και στη συνέχεια να εκτελέσετε την εντολή με τον ακόλουθο τρόπο:
./βιογραφικό
Χρήση
Ακολουθούν ορισμένα παραδείγματα για τον τρόπο με τον οποίο μπορεί να χρησιμοποιηθεί αυτή η εντολή:
Σημείωση : Όλα τα παραδείγματα που παρουσιάζονται σε αυτό το άρθρο ελέγχονται στο Ubuntu 14.04.
Ένα βασικό παράδειγμα
Δεδομένου ότι η εντολή cv
εμφανίζει την πρόοδο των άλλων εντολών που εκτελούνται, πρέπει να υπάρχει μια εντολή που εκτελείται αρκετά μακρά ώστε η εντολή cv
μπορεί να εμφανίσει οτιδήποτε. Για παράδειγμα, προσπάθησα να αντιγράψω ένα τεράστιο αρχείο από το pen-drive μου στο κιβώτιο μου Linux και όταν εκτελέστηκε η εντολή cp
, αμέσως μετά μεταπηδήστηκα σε άλλη καρτέλα κελύφους και εκτέλεσα την ακόλουθη εντολή:
./βιογραφικό
Η εντολή εμφανίζει την ακόλουθη έξοδο:
Το πρώτο πεδίο στην έξοδο είναι το PID της εντολής που παρακολουθείται, ακολουθούμενη από την εντολή και την πρόοδο σε ποσοστό και αριθμούς. Ένα σημείο που αξίζει να σημειωθεί είναι ότι η πρώτη γραμμή στην έξοδο της εντολής cv
( cat inactive/flushing/streaming/...
) είναι προεπιλογή - Έλεγξα τον κώδικα και διαπίστωσα ότι η γραμμή εκτυπώνεται κάτω από συγκεκριμένες συνθήκες, hit (μπορούμε να το αγνοήσουμε για τώρα).
Εάν εκτελούνται περισσότερες από μία εντολές, η εντολή cv
εμφανίζει την πρόοδο που σχετίζεται με όλες τις εντολές. Για παράδειγμα, εδώ είναι η έξοδος με δύο εντολές:
Αποκτήστε μια εκτιμώμενη χωρητικότητα I / O και ETA
Παρόλο που είναι χρήσιμο να γνωρίζετε την πρόοδο μιας εντολής, είναι ακόμα πιο βολικό αν γνωρίζετε άλλες πληροφορίες όπως ο χρόνος που απομένει ή η ΕΤΑ. Για αυτό, η εντολή cv
προσφέρει την επιλογή γραμμής εντολών -w
.
Για παράδειγμα, όταν εκτελέστηκε η ακόλουθη εντολή:
./cv -w
εμφανίστηκε η ακόλουθη έξοδος:
[9287] cp / media / himanshu / F58B-9AA9 / casper-rw 10, 3% (105, 2 MiB / 1 GiB) 27, 9 MiB / s eta 0:00:32
Τα τελευταία δύο πεδία στην έξοδο, τα οποία αντιπροσωπεύουν εκτιμώμενη διακίνηση εισόδου / εξόδου και ETA, υποδηλώνουν ότι η λειτουργία αντιγραφής προχωρά με ρυθμό 27, 9 MB ανά δευτερόλεπτο και θα διαρκέσει 32 δευτερόλεπτα για να ολοκληρωθεί.
Βγάλτε την εντολή
Ενώ χρησιμοποιείτε την εντολή cv
, θα παρατηρήσετε ότι εμφανίζει τις λεπτομέρειες της προόδου εκείνης της στιγμής και στη συνέχεια τερματίζεται. Για να βεβαιωθείτε ότι το cv
δεν τερματίζεται μέχρι να τερματιστεί η παρακολουθούμενη εντολή, χρησιμοποιήστε την επιλογή -m
.
cv -m
Αυτό θα διασφαλίσει ότι οι εντολές cv
εντολής cv
ενώ παρακολουθούνται διαδικασίες εξακολουθούν να εκτελούνται.
συμπέρασμα
Η εντολή cv
θα μπορούσε να αποτελέσει πλεονέκτημα για όσους ασχολούνται με τη μεταφορά βαρέων αρχείων ή άλλων χρονοβόρων λειτουργιών στη γραμμή εντολών του Linux. Περιττό να πούμε ότι είναι ανοικτή πηγή, μπορείτε να αλλάξετε τον τρόπο με τον οποίο αλληλεπιδρά και εργάζεται κάνοντας αλλαγές στη βάση του κώδικα, η οποία είναι αρκετά μικρή και εύκολη στην κατανόηση.
Έχετε χρησιμοποιήσει ποτέ cv
ή οποιαδήποτε άλλη παρόμοια εντολή; Πώς ήταν η εμπειρία σου; Μοιραστείτε τις σκέψεις σας στα παρακάτω σχόλια.