Advertisement
Guest User

Untitled

a guest
Aug 17th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. DEPLOY_SERVER="XXX.XXX.XXX.XXX"
  4. DEPLOY_SSH_USER="ec2-user"
  5. DEPLOY_SSH_PEM="/root/s.key"
  6. DEPLOY_SSH_PORT="22"
  7. CMS_PUBLIC_DIR="/var/share/zomeki/sites/00/00/00/01/00000001/public"
  8. CMS_PUBLIC_DIR="/var/share/zomeki/sites/00/00/00/01/00000001/public"
  9. CMS_DB_USER="root"
  10. CMS_DB_PASSWORD="mysql"
  11. CMS_DB_NAME="zomeki_production"
  12. DEPLOY_PUBLIC_DIR="/var/share/zomeki/sites/00/00/00/01/00000001"
  13. DEPLOY_DB_USER="root"
  14. DEPLOY_DB_PASSWORD="zomeki2"
  15. DEPLOY_DB_NAME="zomeki_production"
  16.  
  17. function ssh() {
  18. local com="$1"
  19. /usr/bin/ssh -p "$DEPLOY_SSH_PORT" -i "$DEPLOY_SSH_PEM" "$DEPLOY_SSH_USER"@"$DEPLOY_SERVER" "$com" \
  20. > /dev/null 2>&1
  21. }
  22.  
  23. function scp() {
  24. local srcpath="$1"
  25. local destpath="$2"
  26. /usr/bin/scp -r -P "$DEPLOY_SSH_PORT" -i "$DEPLOY_SSH_PEM" "$srcpath" "$DEPLOY_SSH_USER"@"$DEPLOY_SERVER":"$destpath" \
  27. > /dev/null 2>&1
  28. }
  29.  
  30. function check-lock() {
  31. local lockfile="/tmp/${0}.lock"
  32. [[ -f "$lockfile" ]] && return 1 || return 0
  33. }
  34.  
  35. function warn-ex() {
  36. echo "別のプロセスが起動している可能性があります" 1>&2
  37. exit 100
  38. }
  39.  
  40. function sync-db() {
  41. ##
  42. # 圧縮しながら転送してリストアする...つもりだったけど動かない??
  43. # mysqldump --user="$CMS_DB_USER" --password="$CMS_DB_PASSWORD" --opt \
  44. # --single-transaction "$CMS_DB_NAME" | gzip |\
  45. # via-ssh "zcat | mysql --binary-mode --user=${DEPLOY_DB_USER} --password=${DEPLOY_DB_PASSWORD} ${DEPLOY_DB_NAME}"
  46. ##
  47.  
  48. local lockfile="/tmp/${0}.lock"
  49. touch "$lockfile"
  50. local tmp=$(mktemp .sync.XXX.gz)
  51. mysqldump --user="$CMS_DB_USER" --password="$CMS_DB_PASSWORD" --opt \
  52. --single-transaction "$CMS_DB_NAME" | gzip > "$tmp"
  53. scp "$tmp" "~/"
  54. ssh "gzip -d ~/${tmp}"
  55. ssh "mysql --user=$DEPLOY_DB_USER --password=$DEPLOY_DB_PASSWORD $DEPLOY_DB_NAME < ~/$(basename -s .gz $tmp)"
  56. rm "~/$(basename -s .gz $tmp)"
  57. rm "$lockfile"
  58. }
  59.  
  60. function sync-html() {
  61. local lockfile="/tmp/${0}.lock"
  62. touch "$lockfile"
  63. rsync -auvz --delete -e "ssh -p $DEPLOY_SSH_PORT -i $DEPLOY_SSH_PEM" \
  64. "$CMS_PUBLIC_DIR" "$DEPLOY_SSH_USER"@"$DEPLOY_SERVER":"$DEPLOY_PUBLIC_DIR"
  65. rm "$lockfile"
  66. }
  67.  
  68. case $1 in
  69. "--sync-db")
  70. check-lock
  71. [[ "$?" == 1 ]] && warn-ex
  72. sync-db
  73. ;;
  74. "--sync-html")
  75. check-lock
  76. [[ "$?" == 1 ]] && warn-ex
  77. sync-html
  78. ;;
  79. "--sync")
  80. check-lock
  81. [[ "$?" == 1 ]] && warn-ex
  82. sync-db
  83. sync-html
  84. ;;
  85. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement