Eu não tive muita experiência com o bash. O script abaixo funcionou quando eu não usei o comando find e apenas scp diretamente do arquivo. Mas estou tentando encontrar e transferir um arquivo que hoje d / m / y foi anexado e só transferi este após encontrá-lo.
Atualmente, dá o erro "arquivo não encontrado" também não tenho certeza de como usar variáveis nessa situação, pois sou um codificador PHP.
#!/usr/bin/expect -f
FILENAME = appendname_".date +%d%m%Y;
spawn bash -c "scp "find /www/reports/archives . -name
$FILENAME.txt" ftpdomain.com:/"
expect "password:"
send "pwaordr"
expect "*r"
expect "ok"
Respostas:
1 para resposta № 1Eu recomendo que você use ssh-keygen
e instale a chave no seu servidor, você pode usar scp
sem precisar fornecer uma senha através expect
. Para sua pergunta, você pode usar substituição de comando (suporte do bash $()
e ``), algo como
spawn bash -c "scp $(find /www/reports/archives -name $FILENAME.txt)
ftpdomain.com:/"