Jak utworzyć narzędzie do automatycznego pobierania i wysyłania plików przy użyciu polecenia WinSCP.


Data publikacji:9 grudnia 2020 r.



INFOMARTION > Jak utworzyć narzędzie do automatycznego pobierania i wysyłania plików przy użyciu polecenia WinSCP.

Przegląd.

Utworzenie narzędzia do automatycznego pobierania i wysyłania plików przy użyciu polecenia WinSCP. Wykonaj polecenia dostarczane przez program WinSCP za pomocą wiersza poleceń. Nic dziwnego, że WinSCP udostępnia polecenia. Zazwyczaj używa się pliku "WinSCP.exe", ale dostępny jest również plik "WinSCP.com". Prawie nigdy nie zobaczysz folderu "C:™Program Files (x86)™WinSCP" w miejscu docelowym skrótu, ponieważ zazwyczaj otwierasz go z poziomu skrótu, ale jeśli spojrzysz na miejsce docelowe skrótu, powinien tam być również zapisany folder "WinSCP.com". W tym miejscu tworzone jest narzędzie.

Spis treści

  1. Co to jest polecenie WinSCP?
  2. Narzędzie do automatycznego pobierania plików
  3. Narzędzie do automatycznego przesyłania danych
  4. Inne polecenia, które mogą być często używane
  5. streszczenie

1. Co to jest polecenie WinSCP?

Polecenie WinSCP jest poleceniem umożliwiającym wykonywanie operacji związanych z programem WinSCP, które normalnie wykonuje się w graficznym interfejsie użytkownika. Ta operacja, którą normalnie wykonuje się na ekranie, jest wykonywana za pomocą polecenia.

1-1. Co możesz zrobić.

Można pobierać i wysyłać pliki, tworzyć foldery, wywoływać polecenia powłoki i wiele innych rzeczy.

Polecenia, które mogą być często używane, obejmują.

open・・・Służy do łączenia.

get・・・Służy do pobierania plików.

put・・・Służy do przesyłania plików.

exit・・・Służy do cięcia.

1-2. Czego nie można robić.

Możliwe jest pobieranie i wysyłanie podstawowych plików, ale po użyciu systemu trudno jest kontrolować szczegóły.

Na przykład trudne wydawało się "sprawdzenie daty aktualizacji pliku i pobranie pliku z określoną datą aktualizacji".

Jeśli chcesz dołączyć złożone warunki do pliku, który ma być poddany manipulacji, możesz wywołać powłokę poleceniem "call", co można osiągnąć za pomocą poleceń systemu Windows, Linux itp.

2. Narzędzie do automatycznego pobierania plików

Chcielibyśmy stworzyć narzędzie, które będzie automatycznie pobierać dzienniki umieszczone na serwerze linuksowym.

2-1. tworzenie strony

Utwórz narzędzie z następującymi warunkami.

・Windows 10 jako środowisko wykonawcze.

・Serwer, który ma zostać przejęty, to Linux.

・Adres IP 192.168.50.10.

Najpierw należy utworzyć plik bat, który będzie punktem wyjścia do aktywacji.

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% 

Z wyjątkiem ostatniego wiersza pozostała część procesu to polecenia systemu Windows. Treść.

@setlocal enabledelayedexpansion

Ustawienia opóźnionych zmiennych środowiskowych. Krótko mówiąc, opis ten zapobiega ustawieniu wartości zmiennej, która może nie mieć odzwierciedlenia w rzeczywistości.

@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 pobierania wartości yyyymmddhmmss z bieżącego czasu i umieszczania jej w zmiennej FOLDER.

@mkdir %FOLDER%

Utwórz folder "yyyymmddhmmss" bezpośrednio pod folderem, w którym został wykonany program batch.

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

WinSCP.com (polecenie WinSCP). Wykonywane są polecenia wymienione w pliku "ftp.txt" w tym samym folderze, w którym zapisany jest plik wsadowy. Jako argument podaj ścieżkę do folderu, który właśnie utworzyłeś.

Na tym kończy się tworzenie pliku rozmówcy. Polecenie WinSCP jest następnie opisane w pliku "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

Treść.

option batch on

W przypadku procesów, które wymagają odpytywania, system automatycznie zakłada, że wybrano opcję "Nie" i automatycznie wykonuje proces. Jeśli to włączysz, wszystkie zduplikowane nazwy plików zostaną automatycznie nadpisane. (Można utworzyć folder "yyyymmddhmmss" i umieścić w nim pliki, aby jednak nie powtarzały się ich nazwy.)

option transfer binary

Ustawienie to umożliwia przesyłanie danych w trybie binarnym.

open test:testpassword@192.168.50.10

'username:pass-word@IP address'. Połącz się z adresem IP "192.168.50.10".

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

Zapisz "/var/log/httpd/access_log" w folderze "yyyymmddhhmmss".('%1%' to argument przekazany w pliku_get.bat)

Można także używać wyrażeń regularnych, więc jeśli napiszesz "/var/log/httpd/*", zostanie pobrany cały dziennik.

close
exit

Jest to proces odłączania.

Na tym kończy się tworzenie narzędzia.

2-2. przygotowanie do wdrożenia

Przed wykonaniem kary pobiera się odciski palców.

Jeśli z serwerem nigdy nie łączono się za pomocą programu WinSCP, pojawi się pytanie, czy połączenie jest bezpieczne. Jeśli użytkownik naciśnie przycisk "Tak", zapis o naciśnięciu przycisku "Tak" zostanie pozostawiony w miejscu zwanym obszarem rejestru systemu Windows. Dzięki temu system nie jest sprawdzany po raz drugi. Podczas uruchamiania narzędzia należy to zrobić z wyprzedzeniem i zapisać informacje o serwerze w obszarze rejestru, aby upewnić się, że połączenie z nim jest bezpieczne, dlatego w wierszu poleceń należy wykonać następujące polecenia.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Zostaniesz poproszony o odpowiedź, wpisz "y".
close
exit
exit

'test:testpassword@192.168.50.10' należy zastąpić słowami 'username:password@IP address'.

Na tym kończą się wstępne przygotowania.

2-3. wdrożenie

Wreszcie nadszedł czas na jego wdrożenie. Kliknij dwukrotnie plik "file_get.bat".

Sukces, jeśli folder "yyyymmddhhmmss" zostanie utworzony, a dzienniki zostaną zapisane w tym folderze.

3. Narzędzie do automatycznego przesyłania danych

Następnym krokiem jest stworzenie narzędzia do umieszczania plików na serwerze Linux. Podstawowa konstrukcja będzie taka sama jak w przypadku narzędzia do pobierania.

3-1. tworzenie strony

Utwórz narzędzie z następującymi warunkami.

・Windows 10 jako środowisko wykonawcze.

・Serwer docelowy to system Linux.

・Adres IP 192.168.50.10.

Najpierw należy utworzyć plik bat, który będzie punktem wyjścia do aktywacji.

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%

Proces polega na zapisaniu plików w folderze 'put_files' w tym samym folderze, w którym wykonywany jest plik wsadowy, czyli w '/tmp/', co zostało wyjaśnione w narzędziu do automatycznego pobierania. Sam proces zapisu jest opisany w pliku "put_ftp.txt".

put_ftp.txt


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

Polecenie "put %1%\ %2%" przesyła pliki zgodnie z "plikiem źródłowym" i "folderem docelowym" przekazanymi jako argumenty, choć pominięto tu pewne wyjaśnienie, ponieważ jest to również wyjaśnione w narzędziu do automatycznego pobierania.

3-2. przygotowanie do wdrożenia

Podobnie jak w przypadku narzędzia do automatycznego pobierania plików, odciski palców są sprawdzane z wyprzedzeniem przed wykonaniem.(Nie jest wymagane, jeśli narzędzie do automatycznego pobierania zostało już raz uruchomione.)

Wykonaj następujące polecenie w wierszu poleceń.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Zostaniesz poproszony o odpowiedź, wpisz "y".
close
exit
exit

'test:testpassword@192.168.50.10' należy zastąpić słowami 'username:password@IP address'.

Na tym kończą się wstępne przygotowania.

3-3. wdrożenie

Wreszcie nadszedł czas na jego wdrożenie. Kliknij dwukrotnie plik "file_put.bat".

Sukces, jeśli pliki zapisane w poleceniu 'put_files' zostaną przeniesione do folderu '/tmp/'.

4. Inne polecenia, które mogą być często używane

Przedstawiliśmy podstawowe polecenia związane z pobieraniem i wysyłaniem plików, ale chcielibyśmy również opisać inne polecenia, które mogą być często używane.

4-1. uwierzytelnianie kluczy

Wcześniej zalogowano się przy użyciu uwierzytelniania hasłem zgodnie z poniższym opisem.

open test:testpassword@192.168.50.10

'open username:password@IP address'. W przypadku uwierzytelniania kluczy obowiązują następujące zasady.

open test@192.168.50.10 -privatekey=id_rsa.ppk

Opcja "-privatekey=id_rsa.ppk" to ścieżka do klucza. Ponieważ jest ona podana jako ścieżka względna, zakłada się, że klucz (id_rsa.ppk) znajduje się również w folderze, w którym znajduje się plik wykonywalny (plik bat). Na przykład, jeśli klucz znajduje się bezpośrednio pod dyskiem C, wpisz "-privatekey=C:id_rsa.ppk".

4-2. Wywołanie powłoki

Aby wywołać powłokę za pomocą polecenia WinSCP, należy napisać następującą instrukcję.

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

Polecenie 'test.sh' jest wykonywane przez 'call sh /tmp/test.sh'. Możliwe jest także przekazywanie argumentów. Przekazując argumenty, zapisuj je w postaci "call sh /tmp/test.sh param1".

5. streszczenie

Polecenie WinSCP zostało opisane.

Jeśli do codziennego rejestrowania i wysyłania plików używasz interfejsu graficznego WinSCP, możesz to zautomatyzować, tworząc narzędzia opisane w tym artykule. Może to być drobne zadanie, ale może pochłaniać dużo czasu, chyba że wykonuje się je codziennie. Zachęcamy do tworzenia narzędzi zwiększających efektywność.

Dziękujemy, że oglądaliście do końca.