Πώς να μεταφέρετε αρχεία μεταξύ δύο υπολογιστών χρησιμοποιώντας εντολές nc και pv


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

Αυτό το άρθρο θα εξηγήσει πώς μεταφέρετε αρχεία μεταξύ δύο υπολογιστών Linux χρησιμοποιώντας nc (βοηθητικό πρόγραμμα δικτύου) και pv (πρόγραμμα προβολής σωλήνα ισχυρή>) εντολές, πριν προχωρήσουμε περαιτέρω, επιτρέψτε μου να εξηγήσω ποιες είναι αυτές οι δύο εντολές.

Το nc σημαίνει Netcat και συχνά επισημαίνει ότι το "Swiss Army knife" είναι ένα εργαλείο δικτύωσης που χρησιμοποιείται για εντοπισμό σφαλμάτων και έρευνα δικτύου και επίσης χρησιμοποιείται για τη δημιουργία συνδέσεων δικτύου με χρήση TCP ή UDP, σάρωση θυρών, μεταφορά αρχείων και άλλα. Έχει δημιουργηθεί για να είναι ένα αξιόπιστο back-end και χρησιμοποιείται ειδικά σε προγράμματα και σενάρια, καθώς μπορεί να δημιουργήσει σχεδόν κάθε είδους σύνδεση δικτύου και έχει μια σειρά από ενσωματωμένες δυνατότητες.

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

Πώς να παρακολουθείτε την πρόοδο των δεδομένων χρησιμοποιώντας την εντολή pv (Pipe Viewer).

Ας προχωρήσουμε τώρα παρακάτω και ας δούμε πώς μπορούμε να συνδυάσουμε και τις δύο εντολές για να μεταφέρουμε αρχεία μεταξύ δύο υπολογιστών Linux, για τους σκοπούς αυτού του άρθρου θα χρησιμοποιήσουμε δύο μηχανές Linux ως εξής:

Machine A with IP : 192.168.0.4
Machine B with IP : 192.168.0.7

Σημείωση: Συνιστώ ανεπιφύλακτα να μην χρησιμοποιείτε το netcat για αποστολή και λήψη δεδομένων μέσω δημόσιου δικτύου, καθώς δεν χρησιμοποιεί στοιχεία σύνδεσης ή έλεγχο ταυτότητας , η μόνη απαίτηση είναι η IP του πελάτη και ο αριθμός θύρας ακρόασης και τα δεδομένα που αποστέλλονται μέσω δικτύου δεν είναι ασφαλή, επομένως, προορίζονται πάντα για προχωρημένους χρήστες Linux και προτιμάται να χρησιμοποιούνται σε προστατευμένο τοπικό δίκτυο.

Σε περιπτώσεις όπου η ασφάλεια των δεδομένων είναι πιο σημαντική, χρησιμοποιήστε πάντα rsync μέσω SSH ή scp μέσω SSH.

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

yum install netcat pv        [On RedHat based systems]
dnf install netcat pv        [On Fedora 22+ versions]
apt-get install netcat pv    [On Debian and its derivatives]

Πώς να μεταφέρετε αρχεία μεταξύ δύο μηχανών Linux;

Ας υποθέσουμε ότι θέλετε να στείλετε ένα μεγάλο αρχείο που ονομάζεται CentOS-7-x86_64-DVD-1503.iso από τον υπολογιστή A στο B μέσω δικτύου , ο πιο γρήγορος τρόπος για να το πετύχετε αυτό χρησιμοποιώντας nc ένα βοηθητικό πρόγραμμα δικτύου που χρησιμοποιείται για την αποστολή αρχείων μέσω δικτύου TCP, pv για παρακολούθηση της προόδου δεδομένων και tar βοηθητικό πρόγραμμα για τη συμπίεση δεδομένων για τη βελτίωση της ταχύτητας μεταφοράς.

Στο Linux Machine A

Πρώτα συνδεθείτε στο μηχάνημα «A» με διεύθυνση IP 192.168.0.4 και εκτελέστε την ακόλουθη εντολή.

tar -zcf - CentOS-7-x86_64-DVD-1503.iso | pv | nc -l -p 5555 -q 5

Επιτρέψτε μου να εξηγήσω τις επιλογές που χρησιμοποιούνται στην παραπάνω εντολή:

  1. tar -zcf=tar είναι ένα βοηθητικό πρόγραμμα αρχειοθέτησης ταινιών που χρησιμοποιείται για τη συμπίεση/αποσυμπίεση αρχείων αρχειοθέτησης και τα ορίσματα -c δημιουργεί ένα νέο αρχείο αρχειοθέτησης .tar, -f καθορίστε τον τύπο του αρχείου αρχειοθέτησης και το -z φιλτράρετε το αρχείο μέσω gzip.
  2. CentOS-7-x86_64-DVD-1503.iso=Καθορίστε το όνομα αρχείου για αποστολή μέσω δικτύου, μπορεί να είναι αρχείο ή διαδρομή προς έναν κατάλογο.
  3. pv=Pipe Viewer για παρακολούθηση της προόδου των δεδομένων.
  4. nc -l -p 5555 -q 5=Εργαλείο δικτύωσης που χρησιμοποιείται για αποστολή και λήψη δεδομένων μέσω tcp και ορίσματα -l που χρησιμοποιούνται για την ακρόαση μιας εισερχόμενης σύνδεσης, - Το p 555 καθορίζει τη θύρα πηγής που θα χρησιμοποιηθεί και το -q 5 περιμένει τον αριθμό των δευτερολέπτων και στη συνέχεια τερματίζει.

Σε Linux Machine B

Τώρα συνδεθείτε στο μηχάνημα «B» με διεύθυνση IP 192.168.0.7 και εκτελέστε την ακόλουθη εντολή.

nc 192.168.1.4 5555 | pv | tar -zxf -

Αυτό είναι όλο, το αρχείο μεταφέρεται στον υπολογιστή B και θα μπορείτε να παρακολουθείτε πόσο γρήγορα εκτελούνταν η λειτουργία. Υπάρχουν πολλές άλλες εξαιρετικές χρήσεις των εντολών nc (δεν καλύπτονται ακόμα, αλλά θα γράψουμε σύντομα γι' αυτό) και pv (καλύψαμε ήδη ένα λεπτομερές άρθρο για αυτό εδώ) , αν γνωρίζετε κάποιο παράδειγμα, ενημερώστε μας μέσω σχολίων!