Substitua FTP por SFTP para transferir arquivos - SOMENTE PSFTP.EXE

Substitua FTP por SFTP para transferir arquivos - SOMENTE PSFTP.EXE

Atualmente estou FTP'ingarquivando em uma caixa unix de um windowsservidor. Quero alterar a seção a seguir do script e migrar o processo FTP para sftp.

@echo off
echo user %user%> ftpcmd.dat
echo %password%>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo put %filetobeuploaded% %filepath%%File%>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat %host%
del ftpcmd.dat
:END

Eu PSFTP.EXEinstalei no meu diretório do Windows. Com isso posso enviar os arquivos com SFTP?

Como posso substituir a linha ftp -n -s:ftpcmd.dat %host%por SFTP. Eu entendo que você pode fazer algo assim....

CALL PSFTP.EXE [email protected] ....

Se alguém conhece, por favor, pode me ajudar a concluí-lo. que argumentos eu daria. Os detalhes de usuário, pw, remotedir e host são mantidos em um arquivo de propriedades. Estou querendo usar chaves em vez de senha. Você pode passar o argumento ftpcmd.dat existente para o psftp?

Responder1

Você também pode usar o WinSCP. Ele suporta SFTP e scripts.

Veja oguia para converter script FTP do Windows em script WinSCP SFTP.

O script ficará assim:

open sftp://%user%:%password%@%host%
put -transfer=binary %filetobeuploaded% %filepath%%File%
exit

Você pode executar o script como (se salvo script.txt):

winscp.com /script=script.txt

Observe que (ao contrário do ftp.exe), as variáveis ​​de ambiente também são resolvidas no script WinSCP.

Se você quiser usar um arquivo de chave privada, use:

open sftp://%user%@%host% -privatekey=path\key.ppk

(Sou o autor do WinSCP)

informação relacionada