Próbuję utworzyć sync.sh
skrypt, który współdziała z naszą mniej niż idealną kontrolą wersji dla naszej strony. Ten skrypt przeniesie kopię bazy danych na żywo do naszego środowiska programistycznego i kilku innych rzeczy. Mam problem z częścią migracji mysql.
Ten skrypt jest uruchamiany na komputerze programistycznym. remote
jest żywym gospodarzem.
# --------------
# 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
# ...
Po uruchomieniu części skryptu mysql otrzymuję następujące dane wyjściowe:
Pseudo-terminal will not be allocated because stdin is not a terminal.
Enter password:
Mamy konfigurację kluczy ssh i mogę poprawnie ssh do pilota. Jednak gdy działa w kontekście skryptu, wszystko idzie nie tak. Myślę, że jestem po prostu całkowitym noobem. Zgaduję, że jeśli po prostu zmienię strukturę mojego podejścia, nie powinienem mieć problemu. Po prostu nie wiem, jak to zrobić ...