Skip to content

Instantly share code, notes, and snippets.

@YuzuruSano
Last active November 15, 2015 12:54
Show Gist options
  • Save YuzuruSano/f5f22df9ec5b93cf44d1 to your computer and use it in GitHub Desktop.
Save YuzuruSano/f5f22df9ec5b93cf44d1 to your computer and use it in GitHub Desktop.
【concrete5 5.7 + mamp想定】リモートのMySQLとapplication/files同期シェルスクリプトのサンプル
#!/bin/sh
# sync_db_sample
# リモートのDB同期とapplication/files取得
# リモートでユーザーが投稿テストしつつ、各種設定も進めつつ、自分はmampで開発する、みたいな場合を想定
# sshpassコマンドが利用できること
# mysqlコマンドが利用できること
# pvコマンドが利用できること(Pipe Viewerをインストール 進捗表示要らないのであれば不要)
#DBをリモードと同期
#sshpass用のパスワード
SERVERPASS='sshpassword'
#sshpポート
PORT='22'
#取得元のホスト
FROMHOST='fromhost'
#取得元DBユーザー
FROMUSER='fromdbuser'
#取得元DBパスワード
FROMPASWORD='fromdbpas'
#取得元DB名
FROMDBNAME='fromdbname'
#ローカルバックアップ先
BACKUPTO='yourpath/your.sql'
#ローカルDBホスト ※mampなのでソケット指定
MYSQLIMPORTTO='-S /Applications/MAMP/tmp/mysql/mysql.sock'
#ローカルDBユーザー
IMPORTUSER='localuser'
#ローカルDBパスワード
IMPORTPASS='localpass'
#ローカルDB名
IMPORTDBNAME='localdbname'
sshpass -p ${SERVERPASS} ssh -p ${PORT} ${FROMHOST} "mysqldump -P 3306 -u${FROMUSER} -p${FROMPASWORD} --single-transaction ${FROMDBNAME}" > ${BACKUPTO}
pv ${BACKUPTO} | mysql ${MYSQLIMPORTTO} -u${IMPORTUSER} -p${IMPORTPASS} ${IMPORTDBNAME}
#ここからアップロードディレクトリ(application/files)の取得
#転送先 環境に合わせて変更
TO="/your_concrete5/application/files"
#転送元 自身の環境にあわせて変更
FROM="username@hostip:/your_remote_concrete5/application/files/"
#まずはDRY RUNしてね
sshpass -p ${SERVERPASS} rsync -avn --delete ${FROM} ${TO}
#sshpass -p ${SERVERPASS} rsync -av --delete ${FROM} ${TO}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment