Kaip sukurti automatinį failų atsisiuntimo ir įkėlimo įrankį naudojant "WinSCP" komandą.


Paskelbimo data:2020 m. gruodžio 9 d.



INFOMARTION > Kaip sukurti automatinį failų atsisiuntimo ir įkėlimo įrankį naudojant "WinSCP" komandą.

Apžvalga.

Sukurkite automatinio failų atsisiuntimo ir įkėlimo įrankį naudodami "WinSCP" komandą. Vykdykite WinSCP pateiktas komandas naudodami komandų eilutę. Nenuostabu, kad "WinSCP" pateikia komandas. Paprastai naudojate "WinSCP.exe", tačiau galima naudoti ir "WinSCP.com". "C:\Program Files (x86)\WinSCP" aplanko beveik niekada nematysite nuorodų paskirties vietoje, nes paprastai jį atidarote iš esmės iš nuorodos, tačiau jei pažvelgsite į nuorodų paskirties vietą, "WinSCP.com" taip pat turėtų būti joje. Čia sukuriamas įrankis.

Turinys

  1. Kas yra WinSCP komanda?
  2. Automatinis atsisiuntimo įrankis
  3. Automatinis įkėlimo įrankis
  4. Kitos dažnai naudojamos komandos
  5. santrauka

1. Kas yra WinSCP komanda?

WinSCP komanda - tai komanda, leidžianti atlikti WinSCP operacijas, kurias paprastai atliekate grafinėje sąsajoje. Ši operacija, kurią paprastai atliekate ekrane, atliekama naudojant komandą.

1-1. Ką galite padaryti.

Galite atsisiųsti ir įkelti failus, kurti aplankus, skambinti apvalkalo komandoms ir atlikti daugelį kitų veiksmų.

Dažnai naudojamos šios komandos.

open・・・Naudojamas prijungimui.

get・・・Naudojamas failams atsisiųsti.

put・・・Naudojamas failams įkelti.

exit・・・Naudojamas pjovimui.

1-2. Ko negalite daryti.

Galima atsisiųsti ir įkelti pagrindinius failus, tačiau, pasinaudojus sistema, atrodo, kad sunku kontroliuoti detales.

Pavyzdžiui, atrodė, kad sunku "patikrinti failo atnaujinimo datą ir parsisiųsti failą su nurodyta atnaujinimo data".

Jei prie tvarkomo failo norite pridėti sudėtingas sąlygas, galite iškviesti apvalkalą naudodami komandą "call", o tai galima padaryti naudojant "Windows" komandas, "Linux" komandas ir t. t.

2. Automatinis atsisiuntimo įrankis

Norėtume sukurti įrankį, kuris iš tikrųjų automatiškai atsisiųstų "Linux" serveryje esančius žurnalus.

2-1. .

Sukurkite įrankį su šiomis sąlygomis.

・"Windows 10" kaip vykdymo aplinka.

・Įsigyjamas serveris yra "Linux".

・IP adresas 192.168.50.10.

Pirmiausia sukurkite bat failą kaip pradinį aktyvavimo tašką.

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% 

Išskyrus paskutinę eilutę, likusi proceso dalis yra "Windows" komanda. Turinys.

@setlocal enabledelayedexpansion

Atidėtų aplinkos kintamųjų nustatymai. Trumpai tariant, šis aprašymas neleidžia nustatyti kintamojo reikšmės, kuri gali neatsispindėti.

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

Procesas, kurio metu iš dabartinio laiko gaunama yyyymmddhmmss ir galiausiai įrašoma į kintamąjį FOLDER.

@mkdir %FOLDER%

Sukurkite aplanką "yyyymmddddhmmss" tiesiai po aplanku, kuriame buvo įvykdyta partija.

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

WinSCP.com (WinSCP komanda). Vykdant įvykdomos komandos, išvardytos "ftp.txt" tame pačiame aplanke, kuriame saugomas paketinis failas. Kaip argumentą perduokite ką tik sukurto aplanko kelią.

Taip užbaigiamas skambinančiojo failo kūrimas. "WinSCP" komanda aprašyta "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

Turinys.

option batch on

Procesų, kuriems reikia pateikti užklausą, atveju sistema automatiškai daro prielaidą, kad pasirinkta "Ne", ir automatiškai vykdo procesą. Jei tai įtrauksite, bus automatiškai perrašyti visi pasikartojantys failų pavadinimai. (Galite sukurti aplanką "yyyymmddddhmmss" ir sudėti failus į jį, kad nebūtų pasikartojančių failų pavadinimų.)

option transfer binary

Nustatoma, kad duomenys būtų perduodami dvejetainiu režimu.

open test:testpassword@192.168.50.10

'username:pass-word@IP address'. Prisijunkite prie IP adreso "192.168.50.10".

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

Laikykite "/var/log/httpd/access_log" aplanke "yyyymmddhhmmss".('%1%' yra argumentas, perduotas file_get.bat)

Taip pat galima naudoti reguliariąsias išraiškas, todėl jei parašysite "/var/log/httpd/*", bus galima gauti visą žurnalą.

close
exit

Tai atjungimo procesas.

Taip užbaigiamas įrankio kūrimas.

2-2. pasirengimas įgyvendinimui

Prieš vykdant bausmę atliekamas išankstinis pirštų atspaudų paėmimas.

Jei prie serverio niekada nebuvo jungtasi per "WinSCP", būsite paklausti, ar saugu jungtis. Jei paspausite "Taip", įrašas apie tai, kad paspaudėte "Taip", bus paliktas "Windows" registro srityje. Taip užtikrinama, kad sistema nebūtų tikrinama antrą kartą. Paleidžiant įrankį būtina tai padaryti iš anksto ir registro srityje išsaugoti informaciją apie serverį, kad būtų užtikrintas saugus prisijungimas, todėl komandų eilutėje paleiskite šias komandas.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Bus paprašyta atsakyti, įveskite "y".
close
exit
exit

"test:testpassword@192.168.50.10" turėtų būti pakeista į "username:password@IP address".

Taip užbaigiamas pirminis pasiruošimas.

2-3. įgyvendinimas

Galiausiai atėjo laikas jį įgyvendinti. Dukart spustelėkite "file_get.bat".

Sėkmė, jei aplankas "yyyymmddhhmmss" sukurtas ir jame saugomi žurnalai.

3. Automatinis įkėlimo įrankis

Kitas žingsnis - sukurti įrankį failams įkelti į "Linux" serverį. Pagrindinė konstrukcija bus tokia pati kaip ir atsisiuntimo įrankio.

3-1. .

Sukurkite įrankį su šiomis sąlygomis.

・"Windows 10" kaip vykdymo aplinka.

・Paskirties serveris yra "Linux".

・IP adresas 192.168.50.10.

Pirmiausia sukurkite bat failą kaip pradinį aktyvavimo tašką.

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%

Kaip buvo paaiškinta automatinio atsisiuntimo įrankyje, šiek tiek paaiškinimų praleista, tačiau procesas yra failų saugojimas aplanke "put_files", esančiame tame pačiame aplanke, kuriame vykdomas partijos failas "/tmp/". Tikrasis saugojimo procesas aprašytas "put_ftp.txt".

put_ftp.txt


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

Komanda "put %1%\ %2%" įkelia failus pagal "šaltinio failą" ir "paskirties aplanką", perduotus kaip argumentus, tačiau šiek tiek paaiškinimų nepateikiama, nes tai taip pat paaiškinta automatinio atsisiuntimo įrankyje.

3-2. pasirengimas įgyvendinimui

Kaip ir automatinio atsisiuntimo įrankio atveju, pirštų atspaudai prieš vykdant tikrinami iš anksto.(Nereikalaujama, jei automatinio atsisiuntimo įrankis buvo paleistas vieną kartą.)

Komandinėje eilutėje atlikite šią komandą.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Bus paprašyta atsakyti, įveskite "y".
close
exit
exit

"test:testpassword@192.168.50.10" turėtų būti pakeista į "username:password@IP address".

Taip užbaigiamas pirminis pasiruošimas.

3-3. įgyvendinimas

Galiausiai atėjo laikas jį įgyvendinti. Dukart spustelėkite "file_put.bat".

Sėkmė, jei 'put_files' išsaugoti failai perkeliami į aplanką '/tmp/'.

4. Kitos dažnai naudojamos komandos

Supažindinome su pagrindiniais atsisiuntimo ir įkėlimo būdais, tačiau norėtume aprašyti ir kitas komandas, kurios gali būti dažnai naudojamos.

4-1. rakto autentiškumo nustatymas

Anksčiau prisijungėte naudodami slaptažodžio autentifikavimą pagal toliau pateiktą aprašymą.

open test:testpassword@192.168.50.10

'open username:password@IP address'. Autentifikavimo raktui taikomos šios nuostatos.

open test@192.168.50.10 -privatekey=id_rsa.ppk

'-privatekey=id_rsa.ppk' yra rakto kelias. Kadangi jis nurodytas kaip santykinis kelias, daroma prielaida, kad raktas (id_rsa.ppk) taip pat yra aplanke, kuriame yra vykdomasis failas (bat failas). Pavyzdžiui, jei raktas yra tiesiai C diske, įrašykite "-privatekey=C:\id_rsa.ppk".

4-2. Korpuso iškvietimas

Norėdami iškviesti apvalkalą komanda WinSCP, rašykite taip.

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

'test.sh' vykdomas 'call sh /tmp/test.sh'. Taip pat galima perduoti argumentus. Perduodami argumentus rašykite juos kaip "call sh /tmp/test.sh param1".

5. santrauka

Aprašyta WinSCP komanda.

Jei įprastai kasdien naudojate "WinSCP" grafinę sąsają failams registruoti ir įkelti, galite tai automatizuoti sukurdami šiame straipsnyje aprašytus įrankius. Tai gali būti nereikšminga užduotis, tačiau ji gali atimti daug laiko, išskyrus atvejus, kai ji atliekama kasdien. Raginame kurti įrankius efektyvumui didinti.

Dėkojame, kad žiūrėjote iki pabaigos.