Pregunta

Estoy tratando de usar un script automatizado, que podría iniciar sesión en SVN, actualizar mis fuentes, crear un archivo comprimido con estos y enviarlos a un host remoto.

El problema aquí es que, para cada inicio de sesión en SVN (incluso para el pago o la actualización), debemos ingresar nuestra contraseña. La automatización de la entrada de la contraseña, la única forma que pude encontrar, estaba utilizando esperar trabajar en esto.

¿Se espera algún script que pueda ocuparse de SVN y scp para detectar y proporcionar la contraseña a SVN y luego a SCP?

Estoy usando lo siguiente:

spawn svn [lindex $argv 0]
expect " password: <*>quot;
send "$password\r"
expect { 
    " password: <*>quot;    send "$password\r"
    "^At revision "
    "^Updated to revision "
}

La contraseña y el comando superior que paso desde la línea de comandos, pero existe una amenaza de seguridad si alguien tiene acceso al historial. Las respuestas que se mencionan a continuación no satisfacen mis requisitos previos, tampoco puedo hacer una exportación por ahora [algunos otros problemas de seguridad :-(]

¿Fue útil?

Solución

linuxbashscript.sh

svn up /path/to/local/copy
tar -cf backup.tar /path/to/local/copy
scp backup.tar user@192.1.1.1:/path/on/remote/host

o incluso mejor exportar svn de usuario, lo que excluirá todos los directorios .svn.

svn export /path/to/repo /path/to/exported
tar -cf backup.tar /path/to/local/copy
scp backup.tar user@192.1.1.1:/path/on/remote/host

Otros consejos

Si está usando el protocolo svn + ssh para acceder a su repositorio de SVN, puede usar las claves SSH y ssh-agent para administrar el intercambio de información de manera que no tenga que involucrar contraseñas.

Personalmente, usaría ANT para realizar todas esas tareas y luego puede llamar a su secuencia de comandos Ant, según sea necesario. Ant tiene tareas preconfiguradas para svn y scp, así como muchas otras tareas de tipo de automatización de compilación.

Si (como sugirió Dave), usarías Ant, tendrías las siguientes tareas a tu disposición:

  • SvnAnt para realizar comprobaciones, registros y todas las cosas entre
  • Ant TAR para crear el archivo
  • Ant SCP tarea para publicarlo

Puede guardar las contraseñas en un archivo de propiedad separado si le preocupa la seguridad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top