Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- DEPLOY_SERVER="XXX.XXX.XXX.XXX"
- DEPLOY_SSH_USER="ec2-user"
- DEPLOY_SSH_PEM="/root/s.key"
- DEPLOY_SSH_PORT="22"
- CMS_PUBLIC_DIR="/var/share/zomeki/sites/00/00/00/01/00000001/public"
- CMS_PUBLIC_DIR="/var/share/zomeki/sites/00/00/00/01/00000001/public"
- CMS_DB_USER="root"
- CMS_DB_PASSWORD="mysql"
- CMS_DB_NAME="zomeki_production"
- DEPLOY_PUBLIC_DIR="/var/share/zomeki/sites/00/00/00/01/00000001"
- DEPLOY_DB_USER="root"
- DEPLOY_DB_PASSWORD="zomeki2"
- DEPLOY_DB_NAME="zomeki_production"
- function ssh() {
- local com="$1"
- /usr/bin/ssh -p "$DEPLOY_SSH_PORT" -i "$DEPLOY_SSH_PEM" "$DEPLOY_SSH_USER"@"$DEPLOY_SERVER" "$com" \
- > /dev/null 2>&1
- }
- function scp() {
- local srcpath="$1"
- local destpath="$2"
- /usr/bin/scp -r -P "$DEPLOY_SSH_PORT" -i "$DEPLOY_SSH_PEM" "$srcpath" "$DEPLOY_SSH_USER"@"$DEPLOY_SERVER":"$destpath" \
- > /dev/null 2>&1
- }
- function check-lock() {
- local lockfile="/tmp/${0}.lock"
- [[ -f "$lockfile" ]] && return 1 || return 0
- }
- function warn-ex() {
- echo "別のプロセスが起動している可能性があります" 1>&2
- exit 100
- }
- function sync-db() {
- ##
- # 圧縮しながら転送してリストアする...つもりだったけど動かない??
- # mysqldump --user="$CMS_DB_USER" --password="$CMS_DB_PASSWORD" --opt \
- # --single-transaction "$CMS_DB_NAME" | gzip |\
- # via-ssh "zcat | mysql --binary-mode --user=${DEPLOY_DB_USER} --password=${DEPLOY_DB_PASSWORD} ${DEPLOY_DB_NAME}"
- ##
- local lockfile="/tmp/${0}.lock"
- touch "$lockfile"
- local tmp=$(mktemp .sync.XXX.gz)
- mysqldump --user="$CMS_DB_USER" --password="$CMS_DB_PASSWORD" --opt \
- --single-transaction "$CMS_DB_NAME" | gzip > "$tmp"
- scp "$tmp" "~/"
- ssh "gzip -d ~/${tmp}"
- ssh "mysql --user=$DEPLOY_DB_USER --password=$DEPLOY_DB_PASSWORD $DEPLOY_DB_NAME < ~/$(basename -s .gz $tmp)"
- rm "~/$(basename -s .gz $tmp)"
- rm "$lockfile"
- }
- function sync-html() {
- local lockfile="/tmp/${0}.lock"
- touch "$lockfile"
- rsync -auvz --delete -e "ssh -p $DEPLOY_SSH_PORT -i $DEPLOY_SSH_PEM" \
- "$CMS_PUBLIC_DIR" "$DEPLOY_SSH_USER"@"$DEPLOY_SERVER":"$DEPLOY_PUBLIC_DIR"
- rm "$lockfile"
- }
- case $1 in
- "--sync-db")
- check-lock
- [[ "$?" == 1 ]] && warn-ex
- sync-db
- ;;
- "--sync-html")
- check-lock
- [[ "$?" == 1 ]] && warn-ex
- sync-html
- ;;
- "--sync")
- check-lock
- [[ "$?" == 1 ]] && warn-ex
- sync-db
- sync-html
- ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement