Como criar uma ferramenta de download e upload automático de ficheiros usando o comando WinSCP.


Data de Publicação:9 de Dezembro de 2020.



INFOMARTION > Como criar uma ferramenta de download e upload automático de ficheiros usando o comando WinSCP.

Visão geral.

Criar uma ferramenta de download e upload automático de ficheiros usando o comando WinSCP. Executar os comandos fornecidos pelo WinSCP utilizando o prompt de comando. Não surpreendentemente, o WinSCP fornece comandos. Normalmente usa 'WinSCP.exe', mas 'WinSCP.com' também está disponível. Quase nunca verá a pasta "C:\Program Files (x86)\WinSCP" no destino do atalho, pois normalmente abre-se basicamente a partir do atalho, mas se olhar para o destino do atalho, "WinSCP.com" também deve ser guardado lá. É aqui que a ferramenta é criada.

Tabela de Conteúdos

  1. O que é o comando WinSCP?
  2. Ferramenta de descarga automática
  3. Ferramenta de carregamento automático
  4. Outros comandos que podem ser utilizados com frequência
  5. resumo

1. O que é o comando WinSCP?

O comando WinSCP é um comando que lhe permite realizar as operações WinSCP que normalmente executa no GUI. Esta operação, que normalmente operaria no ecrã, é realizada por meio de um comando.

1-1. O que se pode fazer.

Pode descarregar e carregar ficheiros, criar pastas, chamar comandos shell e muitas outras coisas.

Os comandos que podem ser utilizados com frequência incluem.

open・・・Utilizado para ligação.

get・・・Utilizado para descarregar ficheiros.

put・・・Utilizado para o carregamento de ficheiros.

exit・・・Utilizado para corte.

1-2. O que não se pode fazer.

É possível descarregar e carregar ficheiros básicos, mas após a utilização do sistema, parece difícil controlar os detalhes.

Por exemplo, parecia difícil "verificar a data de actualização de um ficheiro e ir buscar um ficheiro com uma data de actualização especificada".

Se quiser anexar condições complexas ao ficheiro a ser manipulado, pode chamar a shell com o comando 'call', o que pode ser conseguido utilizando comandos Windows, comandos Linux, etc.

2. Ferramenta de descarga automática

Gostaríamos de criar uma ferramenta que descarregará automaticamente os registos colocados no servidor Linux.

2-1. fazendo

Criar uma ferramenta com as seguintes condições.

・Windows 10 como o ambiente de execução.

・O servidor a ser adquirido é o Linux.

・Endereço IP 192.168.50.10.

Primeiro, criar um ficheiro de morcegos como ponto de partida para activação.

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% 

Excepto na última linha, o resto do processo é um comando Windows. Conteúdo.

@setlocal enabledelayedexpansion

Configurações para variáveis de ambiente atrasadas. Resumidamente, esta descrição impede a definição de um valor para uma variável que pode não ser reflectida.

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

O processo de obter yyyyymmddhmmss da hora actual e finalmente colocá-lo na variável FOLDER.

@mkdir %FOLDER%

Criar uma pasta 'yyyyymmddhmmss' directamente por baixo da pasta onde o lote foi executado.

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

WinSCP.com (comando WinSCP). A execução executa os comandos listados em "ftp.txt" na mesma pasta onde o ficheiro do lote é armazenado. Passe o caminho da pasta que acabou de criar como argumento.

Isto completa a criação do ficheiro de chamada. O comando WinSCP é então descrito em "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

Conteúdo.

option batch on

Para processos que requerem consultas, o sistema assume automaticamente que 'Não' foi seleccionado e executa automaticamente o processo. Se incluir isto, irá automaticamente sobrescrever quaisquer nomes de ficheiros duplicados. (Pode criar uma pasta "yyyyymmddhmmss" e colocar aí os ficheiros, para que não haja, no entanto, nomes de ficheiros duplicados.)

option transfer binary

A configuração é para transferir os dados em modo binário.

open test:testpassword@192.168.50.10

'username:pass-word@IP address'. Ligar ao endereço IP "192.168.50.10".

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

Armazenar '/var/log/httpd/access_log' na pasta 'yyyyymmddhhmmss'.(%1%" é o argumento passado em file_get.bat)

Também podem ser utilizadas expressões regulares, por isso se escrever "/var/log/httpd/*", todo o registo pode ser recuperado.

close
exit

Este é um processo de desconexão.

Isto completa a criação da ferramenta.

2-2. preparação da implementação

As impressões digitais preliminares são realizadas antes da execução.

Se o servidor nunca tiver sido ligado através do WinSCP, ser-lhe-á perguntado se é seguro ligar-se. Se premir 'Sim', um registo de premir 'Sim' é deixado num local chamado área de registo do Windows. Isto assegura que o sistema não é verificado uma segunda vez. Ao executar a ferramenta, é necessário fazê-lo com antecedência e guardar informação sobre o servidor na área de registo para garantir que é seguro ligar-se, por isso executar os seguintes comandos no prompt de comando.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒É-lhe pedida uma resposta, introduza 'y'.
close
exit
exit

'test:testpassword@192.168.50.10' deve ser substituído por 'username:password@IP address'.

Isto completa os preparativos preliminares.

2-3. implementação

Finalmente, é tempo de o implementar. Faça duplo clique em 'file_get.bat'.

Sucesso se a pasta "yyyyymmddhhmmss" for criada e os registos forem guardados na pasta.

3. Ferramenta de carregamento automático

O passo seguinte é criar uma ferramenta para colocar ficheiros num servidor Linux. A construção básica será a mesma que a ferramenta de descarga.

3-1. fazendo

Criar uma ferramenta com as seguintes condições.

・Windows 10 como o ambiente de execução.

・O servidor de destino é Linux.

・Endereço IP 192.168.50.10.

Primeiro, criar um ficheiro de morcegos como ponto de partida para activação.

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%

Como foi explicado na ferramenta de descarga automática, omite-se uma pequena explicação, mas o processo é armazenar os ficheiros na pasta 'put_files' na mesma pasta onde o ficheiro do lote é executado em '/tmp/'. O processo de armazenamento efectivo é descrito em "put_ftp.txt".

put_ftp.txt


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

O comando "put %1%\ %2%" carrega ficheiros de acordo com o "ficheiro fonte" e "pasta de destino" passados como argumentos, embora uma pequena explicação seja omitida porque isto também é explicado na ferramenta de descarga automática.

3-2. preparação da implementação

Tal como com a ferramenta de descarregamento automático, as impressões digitais são verificadas com antecedência antes da execução.(Não é necessário se a ferramenta de descarga automática tiver sido executada uma vez.)

Executar o seguinte comando no prompt de comando.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒É-lhe pedida uma resposta, introduza 'y'.
close
exit
exit

'test:testpassword@192.168.50.10' deve ser substituído por 'username:password@IP address'.

Isto completa os preparativos preliminares.

3-3. implementação

Finalmente, é tempo de o implementar. Faça duplo clique em 'file_put.bat'.

Sucesso se os ficheiros armazenados em 'put_files' forem transferidos para a pasta '/tmp/'.

4. Outros comandos que podem ser utilizados com frequência

Introduzimos o descarregamento e carregamento básico, mas gostaríamos também de descrever outros comandos que podem ser utilizados com frequência.

4-1. autenticação de chaves

Anteriormente, iniciou sessão com autenticação de senha de acordo com a seguinte descrição.

open test:testpassword@192.168.50.10

'open username:password@IP address'. Para autenticação da chave, aplica-se o seguinte.

open test@192.168.50.10 -privatekey=id_rsa.ppk

A '-privatekey=id_rsa.ppk' é o caminho para a chave. Como é listado como um caminho relativo, assume-se que a chave (id_rsa.ppk) está também na pasta onde se encontra o ficheiro executável (bat file). Por exemplo, se a chave estiver localizada directamente debaixo da drive C, escrever "-privatekey=C:\id_rsa.ppk".

4-2. Chamar a concha

Para invocar a concha por meio do comando WinSCP, escrever como se segue.

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

test.sh' é executado por 'call sh /tmp/test.sh'. Também é possível passar argumentos. Ao passar argumentos, escreva-os como "call sh /tmp/test.sh param1".

5. resumo

O comando WinSCP foi descrito.

Se normalmente utiliza o GUI WinSCP para registar e carregar ficheiros diariamente, pode automatizar isto através da criação das ferramentas descritas neste artigo. Pode ser uma tarefa menor, mas pode demorar muito tempo, excepto se for feita todos os dias. Encorajamo-lo a criar ferramentas para melhorar a eficiência.

Obrigado por ter observado até ao fim.