Как да създадете инструмент за автоматично изтегляне и качване на файлове с помощта на командата 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, които обикновено се извършват в графичния потребителски интерфейс. Тази операция, която обикновено се извършва на екрана, се извършва с помощта на команда.

1-1. Какво можете да направите.

Можете да изтегляте и качвате файлове, да създавате папки, да извиквате шел команди и много други неща.

Командите, които могат да се използват често, включват.

open・・・Използва се за свързване.

get・・・Използва се за изтегляне на файлове.

put・・・Използва се за качване на файлове.

exit・・・Използва се за рязане.

1-2. Какво не можете да направите.

Възможни са основни изтегляния и качвания на файлове, но след използване на системата изглежда трудно да се контролират подробностите.

Например изглеждаше трудно да се "провери датата на актуализация на даден файл и да се изтегли файл с определена дата на актуализация".

Ако искате да приложите сложни условия към файла, който трябва да бъде манипулиран, можете да извикате обвивката с командата 'call', което може да се постигне с помощта на команди за Windows, команди за Linux и т.н.

2. Инструмент за автоматично изтегляне

Бихме искали да създадем инструмент, който всъщност автоматично да изтегля дневниците, разположени на сървъра на Linux.

2-1. създаване на

Създайте инструмент със следните условия.

・Windows 10 като среда за изпълнение.

・Сървърът, който трябва да бъде придобит, е Linux.

・IP адрес 192.168.50.10.

Първо, създайте бат файл като отправна точка за активиране.

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.

Първо, създайте бат файл като отправна точка за активиране.

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, за да записвате и качвате файлове ежедневно, можете да автоматизирате това, като създадете инструментите, описани в тази статия. Може да е дребна задача, но може да отнеме много време, освен ако се изпълнява всеки ден. Насърчаваме ви да създавате инструменти за подобряване на ефективността.

Благодарим ви, че гледахте до края.