I am trying to create a sync.sh
script that coordinates with our less-than-ideal version control for our website. This script will migrate a live copy of the database to our development environment and a couple other things. I'm having trouble with the mysql migration portion.
This script is run on a development machine. remote
is the live host.
# --------------
# 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
# ...
When I just run the mysql portion of the script, I'm getting this output:
Pseudo-terminal will not be allocated because stdin is not a terminal.
Enter password:
We have ssh keys setup and I can ssh to the remote properly. However, when run in the script context, things are going wrong. I think I'm just a total bash noob. I'm guessing that if I simply change the structure of my approach, I should have no problem. I'm just not sure how to do that...