Várias vezes ao longo do dia, posso estar executando um teste em que preciso examinar um arquivo de log em um servidor remoto. Eu me acostumei a usar meu terminal para sftp
o servidor remoto e puxar o arquivo de log desejado para a /tmp
minha máquina local.
Eu estava examinando as opções hoje usando man sftp
uma tentativa de descobrir uma maneira de executar os comandos a seguir basicamente em uma única linha para que eu não precise digitar um comando, pressionar Enter, digitar um comando pressionar Enter, etc.
(o que faço agora)
sftp myuser@myserver
--mypassword at prompt
lcd /tmp
get /dir/dir/dir/dir/file
quit
Eu encontrei enquanto procurava man sftp
uma referência scp
que eu não usei antes. Acho que pode ser o que estou procurando, mas não vi uma maneira de especificar onde queria que o arquivo copiado com segurança fosse.
Alguém poderia me fornecer uma maneira de obter /dir/file
de um servidor remoto e fazer o download /tmp/file_plus-my-description
?
Eu esperava ser capaz de executar um comando sftp ou scp semelhante a uma cópia regular do UNIX como:
scp myuser@myserver /dir/file /tmp/file_plus-my-description
Estou usando o Terminal
Mac OS X 10.8 integrado . Obrigado.
Para fazer o UPLOAD de um único arquivo, você precisará criar um script bash. Algo como o seguinte deve funcionar no OS X se você tiver
sshpass
instalado.Uso:
Coloque este script em algum lugar do seu caminho e chame-o de
sftpx
:fonte
sftp oferece suporte a arquivos em lote.
Na página de manual:
fonte
--batch
exigiria que eu colocasse meus comandos em um arquivo e, em seguida, passasse esse arquivo como um parâmetro. Ainda estou brincandoscp
, acho que pode conter minha solução.Ou
echo 'put {path to file}' | sftp {user}@{host}:{dir}
, que funcionaria em Unix e PowerShell.fonte
Uma pequena modificação como a abaixo funcionou para mim ao usá-la de dentro da chamada de perl e system ():
fonte
Resposta SCP
O OP mencionou SCP, então aqui está.
Como outros apontaram, SFTP é confuso, pois a sintaxe de upload é completamente diferente da sintaxe de download . Fica um pouco mais fácil de lembrar se você usar o mesmo formulário:
Na realidade, isso ainda é uma bagunça, e é por isso que as pessoas ainda usam comandos "desatualizados", como SCP:
SCP é seguro, mas desatualizado. Ele tem alguns bugs que nunca serão corrigidos, nomeadamente travar se o servidor
.bash_profile
emitir uma mensagem. No entanto, em termos de usabilidade, os desenvolvedores estavam anos à frente.fonte