Ako vytvoriť nástroj na automatické sťahovanie a odosielanie súborov pomocou príkazu WinSCP.


Dátum vydania:9. decembra 2020.



INFOMARTION > Ako vytvoriť nástroj na automatické sťahovanie a odosielanie súborov pomocou príkazu WinSCP.

Prehľad.

Vytvorenie nástroja na automatické sťahovanie a odosielanie súborov pomocou príkazu WinSCP. Pomocou príkazového riadku vykonajte príkazy poskytované programom WinSCP. Nie je prekvapujúce, že WinSCP poskytuje príkazy. Zvyčajne používate "WinSCP.exe", ale k dispozícii je aj "WinSCP.com". Priečinok "C:\Program Files (x86)\WinSCP" takmer nikdy neuvidíte v cieli zástupcu, pretože ho zvyčajne otvárate v podstate zo zástupcu, ale ak sa pozriete na cieľ zástupcu, mal by tam byť uložený aj "WinSCP.com". Tu sa vytvorí nástroj.

Obsah

  1. Čo je príkaz WinSCP?
  2. Nástroj na automatické sťahovanie
  3. Nástroj na automatické nahrávanie
  4. Ďalšie príkazy, ktoré sa môžu často používať
  5. zhrnutie

1. Čo je príkaz WinSCP?

Príkaz WinSCP je príkaz, ktorý umožňuje vykonávať operácie WinSCP, ktoré sa bežne vykonávajú v grafickom používateľskom rozhraní. Táto operácia, ktorú by ste bežne vykonali na obrazovke, sa vykonáva pomocou príkazu.

1-1. Čo môžete urobiť.

Môžete sťahovať a odosielať súbory, vytvárať priečinky, volať príkazy shellu a mnoho ďalších vecí.

Medzi často používané príkazy patria.

open・・・Používa sa na pripojenie.

get・・・Slúži na sťahovanie súborov.

put・・・Slúži na nahrávanie súborov.

exit・・・Používa sa na rezanie.

1-2. Čo nemôžete robiť.

Základné sťahovanie a odosielanie súborov je možné, ale po použití systému sa zdá byť ťažké kontrolovať detaily.

Napríklad sa zdalo ťažké "skontrolovať dátum aktualizácie súboru a načítať súbor so zadaným dátumom aktualizácie".

Ak chcete k súboru, s ktorým sa má manipulovať, pripojiť zložité podmienky, môžete zavolať shell príkazom 'call', čo možno dosiahnuť pomocou príkazov systému Windows, Linuxu atď.

2. Nástroj na automatické sťahovanie

Chceli by sme vytvoriť nástroj, ktorý bude skutočne automaticky sťahovať protokoly umiestnené na serveri Linux.

2-1. tvorba

Vytvorte nástroj s nasledujúcimi podmienkami.

・Windows 10 ako prostredie vykonávania.

・Server, ktorý sa má získať, je Linux.

・IP adresa 192.168.50.10.

Najprv vytvorte súbor bat ako východiskový bod pre aktiváciu.

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% 

Okrem posledného riadku je zvyšok procesu príkazom systému Windows. Obsah.

@setlocal enabledelayedexpansion

Nastavenia pre oneskorené premenné prostredia. Stručne povedané, tento popis zabraňuje nastaveniu hodnoty premennej, ktorá sa nemusí prejaviť.

@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%

Proces získavania rrrrmmddhmmss z aktuálneho času a nakoniec jeho vloženie do premennej FOLDER.

@mkdir %FOLDER%

Vytvorte priečinok "yyyymmddhmmss" priamo pod priečinkom, v ktorom bola dávka spustená.

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

WinSCP.com (príkaz WinSCP). Vykonanie vykoná príkazy uvedené v súbore "ftp.txt" v tom istom priečinku, v ktorom je uložený dávkový súbor. Ako argument odovzdajte práve vytvorenú cestu k priečinku.

Tým sa dokončí vytváranie súboru volajúceho. Príkaz WinSCP je potom popísaný v súbore "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

Obsah.

option batch on

Pri procesoch, ktoré vyžadujú dotazovanie, systém automaticky predpokladá, že bola zvolená možnosť "Nie", a automaticky vykoná proces. Ak ju uvediete, automaticky sa prepíšu všetky duplicitné názvy súborov. (Môžete vytvoriť priečinok "yyyymmddhmmss" a umiestniť do neho súbory, aby sa názvy súborov neduplikovali.)

option transfer binary

Nastavenie je na prenos údajov v binárnom režime.

open test:testpassword@192.168.50.10

'username:pass-word@IP address'. Pripojte sa k IP adrese "192.168.50.10".

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

Uložte '/var/log/httpd/access_log' do priečinka 'yyyymmddhhmmss'.('%1%' je argument odovzdaný v súbore file_get.bat)

Možno použiť aj regulárne výrazy, takže ak napíšete "/var/log/httpd/*", možno načítať celý protokol.

close
exit

Ide o proces odpojenia.

Tým je vytvorenie nástroja dokončené.

2-2. príprava realizácie

Pred vykonaním sa vykoná predbežné odobratie odtlačkov prstov.

Ak ste sa k serveru nikdy nepripojili prostredníctvom protokolu WinSCP, zobrazí sa otázka, či je pripojenie bezpečné. Ak stlačíte "Áno", záznam o stlačení "Áno" zostane na mieste nazývanom oblasť registra systému Windows. Tým sa zabezpečí, že sa systém nebude kontrolovať druhýkrát. Pri spúšťaní nástroja je potrebné to urobiť vopred a uložiť informácie o serveri do oblasti registra, aby sa zabezpečilo bezpečné pripojenie, preto v príkazovom riadku spustite nasledujúce príkazy.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Zobrazí sa výzva na odpoveď, zadajte "y".
close
exit
exit

'test:testpassword@192.168.50.10' by sa malo nahradiť 'username:password@IP address'.

Týmto sú predbežné prípravy ukončené.

2-3. implementácia

Nakoniec je čas na implementáciu. Dvakrát kliknite na súbor 'file_get.bat'.

Úspech, ak je vytvorený priečinok "yyyymmddhhmmss" a protokoly sú v ňom uložené.

3. Nástroj na automatické nahrávanie

Ďalším krokom je vytvorenie nástroja na umiestnenie súborov na server Linux. Základná konštrukcia bude rovnaká ako pri nástroji na sťahovanie.

3-1. tvorba

Vytvorte nástroj s nasledujúcimi podmienkami.

・Windows 10 ako prostredie vykonávania.

・Cieľový server je Linux.

・IP adresa 192.168.50.10.

Najprv vytvorte súbor bat ako východiskový bod pre aktiváciu.

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%

Ako bolo vysvetlené v nástroji na automatické sťahovanie, malé vysvetlenie je vynechané, ale proces spočíva v uložení súborov do priečinka "put_files" v rovnakom priečinku, v ktorom sa vykonáva dávkový súbor v priečinku "/tmp/". Skutočný proces ukladania je opísaný v súbore "put_ftp.txt".

put_ftp.txt


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

Príkaz "put %1%\ %2%" nahráva súbory podľa "zdrojového súboru" a "cieľového priečinka" odovzdaných ako argumenty, hoci malé vysvetlenie je vynechané, pretože je to vysvetlené aj v nástroji na automatické sťahovanie.

3-2. príprava realizácie

Rovnako ako v prípade nástroja na automatické sťahovanie sa odtlačky prstov pred vykonaním skontrolujú.(Nevyžaduje sa, ak bol raz spustený nástroj na automatické sťahovanie.)

Na príkazovom riadku vykonajte nasledujúci príkaz.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Zobrazí sa výzva na odpoveď, zadajte "y".
close
exit
exit

'test:testpassword@192.168.50.10' by sa malo nahradiť 'username:password@IP address'.

Týmto sú predbežné prípravy ukončené.

3-3. implementácia

Nakoniec je čas na implementáciu. Dvakrát kliknite na súbor 'file_put.bat'.

Úspech, ak sa súbory uložené v 'put_files' prenesú do priečinka '/tmp/'.

4. Ďalšie príkazy, ktoré sa môžu často používať

Predstavili sme základné sťahovanie a odosielanie, ale radi by sme popísali aj ďalšie príkazy, ktoré sa môžu často používať.

4-1. overenie pravosti kľúča

Predtým ste sa prihlásili pomocou overovania heslom podľa nasledujúceho opisu.

open test:testpassword@192.168.50.10

'open username:password@IP address'. Pre overovanie kľúčov platí nasledujúce.

open test@192.168.50.10 -privatekey=id_rsa.ppk

'-privatekey=id_rsa.ppk' je cesta ku kľúču. Keďže je uvedený ako relatívna cesta, predpokladá sa, že kľúč (id_rsa.ppk) sa nachádza aj v priečinku, v ktorom sa nachádza spustiteľný súbor (súbor bat). Ak sa napríklad kľúč nachádza priamo na disku C, napíšte "-privatekey=C:\id_rsa.ppk".

4-2. Volanie shellu

Ak chcete vyvolať shell pomocou príkazu WinSCP, napíšte nasledujúci postup.

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

'test.sh' sa vykoná pomocou 'call sh /tmp/test.sh'. Je tiež možné odovzdať argumenty. Pri odovzdávaní argumentov ich píšte ako "call sh /tmp/test.sh param1".

5. zhrnutie

Príkaz WinSCP bol popísaný.

Ak bežne používate grafické rozhranie WinSCP na každodenné zaznamenávanie a odosielanie súborov, môžete to automatizovať vytvorením nástrojov opísaných v tomto článku. Môže to byť drobná úloha, ale môže zabrať veľa času, okrem prípadov, keď sa vykonáva každý deň. Odporúčame vám vytvárať nástroje na zlepšenie efektivity.

Ďakujeme vám za sledovanie až do konca.