Você pode usar lftp
para fazer a autenticação de senha de um script. A autenticação sem senha pode ser muito perigosa às vezes. Como vejo que você está invocando esse script para vários servidores, você terá que inserir manualmente as senhas toda vez que usar sftp
.
Em vez disso, você pode usar lftp
para colocar sua senha dentro do script e executá-la como um cron-job. Embora você precise de arquivos diferentes para cada servidor. No entanto, todos eles podem ser executados através de um cron-job para executar *.sh
dentro de um diretório que contenha cada cópia do script.
Passos a seguir para autenticação de senha a partir de um script:
-
primeiro instale o lftp usando yum install lftp
ou sudo apt-get install lftp
, de acordo com o sabor do linux.
-
escreva um script como abaixo:
#!/bin/sh
HOST='ec2#####.us-west-2.compute.amazonaws.com'
USER='ubuntu'
PASSWD='ubuntuuser'
cd directory/where/you/want/to/put/or/get/a/file
lftp << END_OF_SCRIPT
open sftp://$HOST
user $USER $PASSWD
cd /home/anywhere_you_want_the_file_from/
mput *.txt
END_OF_SCRIPT
Note, por favor, mude o hostname, username e password de acordo com o seu servidor. Além disso, esse script usa 'mput' para obter vários arquivos em /home/anywhere_you_want_the_file_from/
location no local remoto para o local. Se um arquivo único for necessário, 'put' pode ser usado. Qualquer comando do sftp pode ser usado dentro do END_OF_SCRIPT
.