Estoy tratando de crear un sync.sh
Script que coordina con nuestro control de versión menos que ideal para nuestro sitio web. Este script migrará una copia en vivo de la base de datos a nuestro entorno de desarrollo y un par de cosas más. Estoy teniendo problemas con la parte de migración de mysql.
Este script se ejecuta en una máquina de desarrollo. remote
es el anfitrión en vivo.
# --------------
# database
# ssh tunnel
ssh -L 3307:remote:3306 user@remote
# mysql dump
mysqldump -u someuser -h remote -P 3307 -p"p4ssw0rd" db > localfile.sql
# somehow close ssh tunnel ???
# populate local db with sql dump file
mysql -ulocal db < localfile.sql
# -----------------
# other sync stuff
# ...
Cuando acabo de ejecutar la parte mysql de la secuencia de comandos, obtengo esta salida:
Pseudo-terminal will not be allocated because stdin is not a terminal.
Enter password:
Tenemos configuración de teclas ssh y puedo ssh al control remoto correctamente. Sin embargo, cuando se ejecuta en el contexto del script, las cosas van mal. Creo que soy un total bash noob. Supongo que si simplemente cambio la estructura de mi enfoque, no debería tener ningún problema. Simplemente no estoy seguro de cómo hacer eso ...