Script de shell para automatizar o upload de SFTP?

1

Estou tentando obter um script PHP para o upload de um arquivo SFTP, mas falhei. Eu tentei fazer minha pergunta no stackoverflow.com, mas não recebi uma solução de trabalho:

link

Então agora eu quero tentar uma abordagem diferente. Existe uma maneira de escrever um script de shell que pode emitir vários comandos para enviar um arquivo sftp para outro servidor? Se eu fosse para emitir comandos um por um do terminal, seria parecido com:

>sftp [email protected]
>password: mypassword
>put file.csv

Eu tentei colocar essas três linhas em um arquivo ./automaticupload. Quando eu executei o arquivo, mas o terminal me mostra:

[email protected]'s password:

mesmo que eu digite a senha no automaticupload.

Não consigo criar uma conta ssh / scp / sftp sem senha. O servidor remoto.com não me fornece acesso ssh ou scp.

O que devo fazer?

    
por John 20.11.2009 / 00:35

3 respostas

3

Se você quiser usar o sftp de um script, precisará setup senhas SSH sem senha com ssh-keygen (1) ou use sshpass

Meu voto quase sempre seria para o primeiro, mas pode depender da situação que é mais apropriada.

    
por 20.11.2009 / 00:39
1

Instale e use, espere, ele é projetado para exatamente esse tipo de situação.

Use o script de autoexpecto para gerar um script de expectativa a partir de uma sessão ao vivo gravada. Dependendo da distribuição, o autoexpect é incluído no pacote principal do expect, ou (estranhamente) no expect-dev no Ubuntu.

    
por 20.11.2009 / 00:48
1

Use socat: link

Por exemplo:

(sleep 2; echo password) | socat - EXEC: "sftp -o batchmode=no -o PubkeyAuthentication=no -b batchfile user@host",pty,setsid,ctty

    
por 16.10.2012 / 13:51

Tags