Πώς να δημιουργήσετε ένα εργαλείο αυτόματης λήψης και μεταφόρτωσης αρχείων χρησιμοποιώντας την εντολή WinSCP.


Ημερομηνία δημοσίευσης:9 Δεκεμβρίου 2020.



INFOMARTION > Πώς να δημιουργήσετε ένα εργαλείο αυτόματης λήψης και μεταφόρτωσης αρχείων χρησιμοποιώντας την εντολή WinSCP.

Επισκόπηση.

Δημιουργήστε ένα εργαλείο αυτόματης λήψης και μεταφόρτωσης αρχείων χρησιμοποιώντας την εντολή WinSCP. Εκτελέστε τις εντολές που παρέχονται από το WinSCP χρησιμοποιώντας τη γραμμή εντολών. Όπως είναι φυσικό, το WinSCP παρέχει εντολές. Συνήθως χρησιμοποιείτε το 'WinSCP.exe', αλλά υπάρχει και το 'WinSCP.com'. Σχεδόν ποτέ δεν θα δείτε το φάκελο "C:\Program Files (x86)\WinSCP" στον προορισμό συντόμευσης, καθώς συνήθως τον ανοίγετε βασικά από τη συντόμευση, αλλά αν κοιτάξετε τον προορισμό της συντόμευσης, το "WinSCP.com" θα πρέπει επίσης να είναι αποθηκευμένο εκεί. Εδώ δημιουργείται το εργαλείο.

Πίνακας περιεχομένων

  1. Τι είναι η εντολή WinSCP;
  2. Αυτόματο εργαλείο λήψης
  3. Αυτόματο εργαλείο μεταφόρτωσης
  4. Άλλες εντολές που μπορεί να χρησιμοποιούνται συχνά
  5. περίληψη

1. Τι είναι η εντολή WinSCP;

Η εντολή WinSCP είναι μια εντολή που σας επιτρέπει να εκτελείτε τις λειτουργίες του WinSCP που συνήθως εκτελείτε στο GUI. Αυτή η λειτουργία, την οποία κανονικά θα εκτελούσατε στην οθόνη, πραγματοποιείται μέσω μιας εντολής.

1-1. Τι μπορείτε να κάνετε.

Μπορείτε να κατεβάζετε και να ανεβάζετε αρχεία, να δημιουργείτε φακέλους, να καλείτε εντολές κελύφους και πολλά άλλα πράγματα.

Οι εντολές που μπορεί να χρησιμοποιούνται συχνά περιλαμβάνουν.

open・・・Χρησιμοποιείται για σύνδεση.

get・・・Χρησιμοποιείται για τη λήψη αρχείων.

put・・・Χρησιμοποιείται για τη μεταφόρτωση αρχείων.

exit・・・Χρησιμοποιείται για κοπή.

1-2. Τι δεν μπορείτε να κάνετε.

Οι βασικές λήψεις και μεταφορτώσεις αρχείων είναι δυνατές, αλλά μετά τη χρήση του συστήματος, φαίνεται δύσκολο να ελέγξετε τις λεπτομέρειες.

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

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

2. Αυτόματο εργαλείο λήψης

Θα θέλαμε να δημιουργήσουμε ένα εργαλείο που θα κατεβάζει αυτόματα τα αρχεία καταγραφής που είναι τοποθετημένα στο διακομιστή Linux.

2-1. κάνοντας

Δημιουργήστε ένα εργαλείο με τις ακόλουθες συνθήκες.

・Windows 10 ως περιβάλλον εκτέλεσης.

・Ο διακομιστής που θα αποκτηθεί είναι Linux.

・Διεύθυνση IP 192.168.50.10.

Πρώτα, δημιουργήστε ένα αρχείο bat ως σημείο εκκίνησης για την ενεργοποίηση.

file_get.bat


@setlocal enabledelayedexpansion
@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%
@mkdir %FOLDER%
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

Εκτός από την τελευταία γραμμή, η υπόλοιπη διαδικασία είναι μια εντολή των Windows. Περιεχόμενο.

@setlocal enabledelayedexpansion

Ρυθμίσεις για τις μεταβλητές περιβάλλοντος με καθυστέρηση. Εν συντομία, αυτή η περιγραφή αποτρέπει τον ορισμό μιας τιμής σε μια μεταβλητή που μπορεί να μην αντανακλάται.

@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%

Η διαδικασία λήψης του yyyymmddhmmss από την τρέχουσα ώρα και η τελική τοποθέτησή του στη μεταβλητή FOLDER.

@mkdir %FOLDER%

Δημιουργήστε ένα φάκελο 'yyyymmddhmmss' ακριβώς κάτω από το φάκελο όπου εκτελέστηκε η δέσμη.

@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

WinSCP.com (εντολή WinSCP). Η εκτέλεση εκτελεί τις εντολές που αναφέρονται στο αρχείο "ftp.txt" στον ίδιο φάκελο όπου είναι αποθηκευμένο το αρχείο δέσμης. Περάστε τη διαδρομή του φακέλου που μόλις δημιουργήσατε ως όρισμα.

Με αυτόν τον τρόπο ολοκληρώνεται η δημιουργία του αρχείου καλούντος. Η εντολή WinSCP περιγράφεται στη συνέχεια στο αρχείο "ftp.txt".

ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
get /var/log/httpd/access_log %1%\
close
exit

Περιεχόμενο.

option batch on

Για διεργασίες που απαιτούν ερωτήματα, το σύστημα θεωρεί αυτόματα ότι έχει επιλεγεί η επιλογή "Όχι" και εκτελεί αυτόματα τη διεργασία. Αν το συμπεριλάβετε αυτό, θα αντικατασταθούν αυτόματα τυχόν διπλά ονόματα αρχείων. (Μπορείτε να δημιουργήσετε έναν φάκελο "yyyymmddhmmss" και να τοποθετήσετε τα αρχεία εκεί, έτσι ώστε να μην υπάρχουν διπλά ονόματα αρχείων.)

option transfer binary

Η ρύθμιση αφορά τη μεταφορά των δεδομένων σε δυαδική λειτουργία.

open test:testpassword@192.168.50.10

'username:pass-word@IP address'. Συνδεθείτε στη διεύθυνση IP "192.168.50.10".

get /var/log/httpd/access_log %1%\

Αποθηκεύστε το αρχείο '/var/log/httpd/access_log' στο φάκελο 'yyyymmddhhmmss'.('%1%' είναι το όρισμα που πέρασε στο file_get.bat)

Μπορούν επίσης να χρησιμοποιηθούν κανονικές εκφράσεις, οπότε αν γράψετε "/var/log/httpd/*", μπορεί να ανακτηθεί ολόκληρο το αρχείο καταγραφής.

close
exit

Πρόκειται για μια διαδικασία αποσύνδεσης.

Έτσι ολοκληρώνεται η δημιουργία του εργαλείου.

2-2. προετοιμασία υλοποίησης

Πριν από την εκτέλεση διενεργείται προκαταρκτική λήψη δακτυλικών αποτυπωμάτων.

Αν ο διακομιστής δεν έχει συνδεθεί ποτέ μέσω του WinSCP, θα ερωτηθείτε αν είναι ασφαλές να συνδεθείτε. Εάν πατήσετε "Ναι", το γεγονός ότι πατήσατε "Ναι" καταγράφεται σε ένα μέρος που ονομάζεται περιοχή μητρώου των Windows. Με τον τρόπο αυτό διασφαλίζεται ότι το σύστημα δεν ελέγχεται για δεύτερη φορά. Κατά την εκτέλεση του εργαλείου, είναι απαραίτητο να το κάνετε αυτό εκ των προτέρων και να αποθηκεύσετε πληροφορίες σχετικά με το διακομιστή στην περιοχή μητρώου για να διασφαλίσετε ότι είναι ασφαλές να συνδεθείτε σε αυτόν, οπότε εκτελέστε τις ακόλουθες εντολές στη γραμμή εντολών.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Σας ζητείται απάντηση, πληκτρολογήστε 'y'.
close
exit
exit

Το 'test:testpassword@192.168.50.10' πρέπει να αντικατασταθεί από το 'username:password@IP address'.

Έτσι ολοκληρώνονται οι προκαταρκτικές προετοιμασίες.

2-3. εφαρμογή

Τέλος, ήρθε η ώρα να το εφαρμόσετε. Κάντε διπλό κλικ στο αρχείο 'file_get.bat'.

Επιτυχία εάν έχει δημιουργηθεί ο φάκελος "yyyymmddhhmmss" και τα αρχεία καταγραφής έχουν αποθηκευτεί στο φάκελο.

3. Αυτόματο εργαλείο μεταφόρτωσης

Το επόμενο βήμα είναι η δημιουργία ενός εργαλείου για την τοποθέτηση αρχείων σε έναν διακομιστή Linux. Η βασική κατασκευή θα είναι η ίδια με το εργαλείο λήψης.

3-1. κάνοντας

Δημιουργήστε ένα εργαλείο με τις ακόλουθες συνθήκες.

・Windows 10 ως περιβάλλον εκτέλεσης.

・Ο διακομιστής προορισμού είναι Linux.

・Διεύθυνση IP 192.168.50.10.

Πρώτα, δημιουργήστε ένα αρχείο bat ως σημείο εκκίνησης για την ενεργοποίηση.

file_put.bat


@setlocal enabledelayedexpansion
@set FOLDER_NAME="put_files\*"
@set FOLDER=%~dp0%FOLDER_NAME%
@set PUT_FOLDER="/tmp/"
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0put_ftp.txt /parameter %FOLDER% %PUT_FOLDER%

Όπως έχει εξηγηθεί στο εργαλείο αυτόματης λήψης, παραλείπεται μια μικρή επεξήγηση, αλλά η διαδικασία είναι να αποθηκεύσετε τα αρχεία στο φάκελο 'put_files' στον ίδιο φάκελο όπου εκτελείται το αρχείο δέσμης στο '/tmp/'. Η πραγματική διαδικασία αποθήκευσης περιγράφεται στο αρχείο "put_ftp.txt".

put_ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
put %1% %2%
close
exit

Η εντολή "put %1%\ %2%" μεταφορτώνει αρχεία σύμφωνα με το "αρχείο προέλευσης" και το "φάκελο προορισμού" που έχουν δοθεί ως ορίσματα, αν και παραλείπεται μια μικρή επεξήγηση, επειδή αυτό εξηγείται επίσης στο εργαλείο αυτόματης λήψης.

3-2. προετοιμασία υλοποίησης

Όπως και με το εργαλείο αυτόματης λήψης, τα δακτυλικά αποτυπώματα ελέγχονται εκ των προτέρων πριν από την εκτέλεση.(Δεν απαιτείται εάν το εργαλείο αυτόματης λήψης έχει εκτελεστεί μία φορά.)

Εκτελέστε την ακόλουθη εντολή στη γραμμή εντολών.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Σας ζητείται απάντηση, πληκτρολογήστε 'y'.
close
exit
exit

Το 'test:testpassword@192.168.50.10' πρέπει να αντικατασταθεί από το 'username:password@IP address'.

Έτσι ολοκληρώνονται οι προκαταρκτικές προετοιμασίες.

3-3. εφαρμογή

Τέλος, ήρθε η ώρα να το εφαρμόσετε. Κάντε διπλό κλικ στο αρχείο 'file_put.bat'.

Επιτυχία αν τα αρχεία που είναι αποθηκευμένα στο 'put_files' μεταφερθούν στο φάκελο '/tmp/'.

4. Άλλες εντολές που μπορεί να χρησιμοποιούνται συχνά

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

4-1. αυθεντικοποίηση κλειδιού

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

open test:testpassword@192.168.50.10

'open username:password@IP address'. Για τον έλεγχο ταυτότητας κλειδιού ισχύουν τα εξής.

open test@192.168.50.10 -privatekey=id_rsa.ppk

Το '-privatekey=id_rsa.ppk' είναι η διαδρομή προς το κλειδί. Καθώς αναφέρεται ως σχετική διαδρομή, θεωρείται ότι το κλειδί (id_rsa.ppk) βρίσκεται επίσης στο φάκελο όπου βρίσκεται το εκτελέσιμο αρχείο (αρχείο bat). Για παράδειγμα, αν το κλειδί βρίσκεται ακριβώς κάτω από τη μονάδα δίσκου C, γράψτε "-privatekey=C:\id_rsa.ppk".

4-2. Κλήση του κελύφους

Για να καλέσετε το κέλυφος μέσω της εντολής WinSCP, γράψτε ως εξής.

option batch on
option transfer binary
open test:testpassword@192.168.50.10
call sh /tmp/test.sh
close
exit

Το 'test.sh' εκτελείται από το 'call sh /tmp/test.sh'. Είναι επίσης δυνατό να περάσετε ορίσματα. Όταν περνάτε ορίσματα, γράψτε τα ως "call sh /tmp/test.sh param1".

5. περίληψη

Η εντολή WinSCP έχει περιγραφεί.

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

Σας ευχαριστούμε που παρακολουθήσατε μέχρι το τέλος.