Upload de SFTP automatizado com curl

2

Eu quero que um arquivo seja enviado diariamente para o servidor remoto usando o comando ftp automatizado. Alguém pode me ajudar neste comando abaixo para verificar se está certo ou errado?

curl -Tu username:password /path/to/dir/*(om[1]) sftp://sftp.example.com/remote/dir

onde

  • username:password é meu próprio nome de usuário e senha.

  • /path/to/dir/*(om[1]) : para obter o arquivo mais recente (atualizado) do meu diretório local

  • sftp://sftp.example.com/remote/dir : transferência segura de arquivos

por Hari 21.11.2012 / 01:57

2 respostas

3

Por que não rsync em vez disso? Você pode ter que instalá-lo (use o gerenciador de pacotes), mas é feito para esse tipo de coisa.

RSYNC_PASSWORD='password' rsync -rtv /path/to/dir/ [email protected]:remote/dir

-r recursivamente rsync, -t preserva os carimbos de hora para que os arquivos existentes não sejam novamente carregados (efetivamente) e -v seja detalhado.

Se você criar e copiar sua chave pública ssh, não será necessário fazer a parte RSYNC_PASSWORD='password' .

Se você não tiver uma combinação de chaves pública / privada, execute:

ssh-keygen

Então

ssh-copy-key-id [email protected]

Isso pressupõe que seu servidor remoto suporte a conexão e atualização do arquivo $HOME/.ssh/authorized_keys ; caso contrário, você terá que fazer o upload manual do arquivo authorized_keys com sua chave pública.

Isso pressupõe que você esteja executando uma versão recente do linux. Sistemas Unix como o Mac OS não possuem o ssh-copy-key-id . Veja mais algumas informações sobre como gerar e instalar sua chave pública em um host remoto:

link

    
por 21.11.2012 / 02:22
1

Sua linha de comando tem um problema que você pode verificar na página do manual . Basicamente, você precisa separar o -T <file to be uploaded> do -u <user:password> . No final, sua linha de comando deve se parecer mais com:

curl -T /path/to/dir/*(om[1]) -u username:password sftp://sftp.example.com/remote/dir

Não tenho certeza sobre o significado real da expressão regular que você menciona *(om[1]) .

Por fim, a questão é sobre FTP enquanto o exemplo da linha de comando é sobre SFTP , mas isso não deve alterar a solução que estou propondo. / p>     

por 14.09.2017 / 10:45

Tags