Esperar para o diretório scp não funciona quando executado a partir do post commit

4

Eu estou tentando implementar um gancho post-commit no svn que irá scp alguns arquivos da máquina svn para alguma outra máquina de backup após cada commit. Eu escrevi o script com o seguinte

spawn /usr/bin/scp -r $l_dir $r_usr@$r_host:/$r_dir

expect {
        timeout { send_user "Timeout"; exit 1 }

        eof { send_user "\nConnect failed for $r_host at \n"; exit 1 }

        -re ".*es..o.*" {
        send_user "sending yes\n"
        exp_send "yes\r"
        exp_continue
        }
        -re ".*sword.*" {
        send_user "sending password\n"
        exp_send "$r_pwd\r"
        }
}
interact

Este script é chamado a partir do post-commit (bash script) com todas as variáveis necessárias fornecidas.

O problema é que quando executo o gancho post-commit como

./post-commit

então o scp é bem sucedido. mas quando é acionado a partir de um commit real, o login e a senha de acesso são bem-sucedidos, mas os arquivos não são copiados

O script com saída de depuração mostra (quando runnig do gatilho de commit)

sending password
send: sending "vashishth\r" to { exp3 }
interact: received eof from spawn_id exp0

Não é possível usar chaves RSA, portanto, preciso usar o scp com senha. Qualquer ajuda seria muito apreciada.

    
por user1746460 24.12.2015 / 06:36

1 resposta

3

descobri com algum google tais casos executando o esperar do cron etc não wok com interação Então eu substituí o

interact 

com

expect eof
exit

e o scp é bem sucedido

    
por 24.12.2015 / 07:52

Tags