Cria novo arquivo após 'scp' no script remoto [closed]

1

Aprendendo bash e tentando copiar um arquivo de uma máquina local para uma máquina remota. Eu gostaria de criar um arquivo .txt simples na máquina local que registra um sucesso. Esta é a minha primeira incursão no bash, então provavelmente há algumas práticas ruins da minha parte enquanto tento aprender como tudo funciona. Eu definitivamente estou na fase de "tentar fazer isso funcionar primeiro".

Meu objetivo é criar um script remoto que copie um arquivo de uma máquina local para uma máquina remota e registre o sucesso em um arquivo na máquina local. Não necessariamente tem que ser meu arquivo de log, foi exatamente o que eu escolhi para o exercício. A lição que estou seguindo usa o expect, o ssh e o scp, então eu gostaria de continuar com eles para contribuir com o fórum da classe e não ter uma solução independente.

#!/usr/bin/expect

set user "redacted"
set password "redacted"
set success "Successfully Logged!"

log_file upload_me.txt

#I spawn ssh to connect to the remote server when I first run the remote script
spawn /usr/bin/ssh ${user}@example.com
expect "assword"
send "${password}\n"
expect "${user}@"

#honestly, I spawn scp here because this is the way I could get it to work
#my (maybe wrong) understanding was that spawn was needed to start a new process (in this case scp)
spawn scp upload_me.txt ${user}@example.com:~/
expect "assword"

send "${password}\n"

#the code seems to work until this point, when I'm am redirected to root of my local machine
#I put expect "${user}@ here because that's what shows when I do the operation manually (not with the remote script)
expect "${user}@"

#I try the exit command because I want to terminate the ssh and return to my local machine to log the success
send "exit\r"
#when I manually exit ssh, I would expect "root@" on my terminal to denote returning to my local machine. I am running locally as root
expect "root@"

#now write to a log file, except this doesn't work
#send "echo ${success} >> my_file.txt

Recebi o erro "desovar ID expX não aberto durante a execução" ou alguma variante semelhante em que X é um número inteiro (por exemplo, exp4 ou exp7).

O arquivo é carregado, mas depois eu não consegui criar um arquivo na máquina local que registra uma tentativa bem-sucedida.

Embora eu aprecie as dicas sobre outros métodos, estou propositalmente usando scp, expect e ssh como parte do curso direcionado, sem crédito.

    
por coolhand 25.09.2018 / 02:33

0 respostas