맛스타의 Study For Us

리눅스 팁
2017.11.06 00:19

사이트 미러링 스크립트.

조회 수 414 추천 수 1 댓글 7
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

해당 내용은 라이믹스 CMS에서만 해당되는 내용입니다.

다른 웹 소스의 자동화 스크립트를 원하는 경우 댓글로 남겨주시면 작업해놓겠습니다.

 

 

저는 studyforus.com 의 다양한 시도를 하기 위해 또 하나의 미러링 사이트를 운영하고 있습니다.

 

목적은 온리 테스트지요.

Expert 이상의 서비스 사용자라면 SSH 계정을 생성해서 쉽게 사이트를 동기화 시킬 수 있습니다.

 

게다가 패널의 크론잡에 걸어놓으면 자동화 작업으로 동기화를 시킬 수도 있습니다.

 

일단 완전 자동화를 위해 (패널 크론잡에 등록하려면 중간에 멈추지 않고 진행되어야 겠죠?) SSH Key 방식의 로그인을 설정합니다.

 

그 방법은 https://studyforus.com/matstar/249223 이 글을 읽고 따라하심 됩니다.

 

 

해당 스크립트 소스는 

#!/bin/bash

# Copyright (C) 2017 Study For Us HOSTING (https://hosting.studyforus.com)
# The Site Mirroring Tool (For RHYMIX)
# Version information : 0.1 (Proto type)
# License : The MIT License (MIT)

# DEFINE ORIGINAL SERVER VARS
ORIGIN_HOST='ORIGIN_server_host' # ORIGINAL SERVER HOST
ORIGIN_DB_HOST='db_host' # ORIGINAL DB HOST
ORIGIN_DB_NAME='db_name' # ORIGINAL DB NAME
ORIGIN_DB_USER='db_user_name' # ORIGINAL DB USER NAME
ORIGIN_DB_PASSWD='db_user_password' # ORIGINAL DB USER PASSWORD
ORIGIN_WEB_DIR='absolute_file_path' # ONLY ABSOLUTE PATH
ORIGIN_USER='user_name' # SSH USER NAME
ORIGIN_DOMAIN='www.domain.com' # ORIGINAL DOMAIN URL
DB_PREFIX='rx_' # DB PREFIX (Basically rx_ or xe_)

# DEFINE MIRROR SERVER VARS
MIRROR_HOST='hostname' # MIRROR SERVER HOST
MIRROR_DB_HOST='db_host' # MIRROR DB HOST
MIRROR_DB_NAME='new_db_name' # MIRROR DB NAME
MIRROR_DB_USER='new_db_user' # MIRROR DB USER NAME
MIRROR_DB_PASSWD='new_db_password' # MIRROR DB USER PASSWORD
MIRROR_WEB_DIR='new_web_path' # MIRROR WEB DIRECTORY (ABSOLUTE PATH)
MIRROR_DOMAIN='www.mirror.com' # MIRROR DOMAIN URL


# Move to web directory.
echo "Move to new web diretory."
cd $MIRROR_WEB_DIR

# Dumping original DB to web directory on mirror server.
echo "Dumping DB to new web directory."
mysqldump -h$ORIGIN_DB_HOST -u$ORIGIN_DB_USER --password=$ORIGIN_DB_PASSWD  --single-transaction $ORIGIN_DB_NAME > $ORIGIN_DB_NAME.sql
echo ""
echo "done."
echo ""
echo ""

# Copying the original DB to new DB.
echo "Restore DB to new site."
mysql -h$MIRROR_DB_HOST -u$MIRROR_DB_USER --password=$MIRROR_DB_PASSWD  $MIRROR_DB_NAME < $ORIGIN_DB_NAME.sql
echo ""
echo "done."
echo ""
echo ""


# Delete DB file after dumping.
echo "Removing DB backup file."
rm $ORIGIN_DB_NAME.sql
echo ""
echo "done."
echo ""
echo ""

# Copying web files to mirror server via rsync
echo "Coping web files to new site web directory."
rsync -azh --delete $ORIGIN_USER@$ORIGIN_HOST:$ORIGIN_WEB_DIR/ $MIRROR_WEB_DIR/
echo ""
echo "done."
echo ""
echo ""

# Back up config.php file
echo "Back up config file."
cp files/config/config.php files/config/config.php.bak
echo ""
echo "done."
echo ""
echo ""

# Modifying DB information from config.php
echo "Changing DB information in config.php file"
sed -i "s/$ORIGIN_DB_NAME/$MIRROR_DB_NAME/g" $MIRROR_WEB_DIR/files/config/config.php
echo "DB name changed."
sed -i "s/$ORIGIN_DB_USER/$MIRROR_DB_USER/g" $MIRROR_WEB_DIR/files/config/config.php
echo "DB user name changed"
sed -i "s/$ORIGIN_DB_PASSWD/$MIRROR_DB_PASSWD/g" $MIRROR_WEB_DIR/files/config/config.php
echo "DB password changed."
echo ""
echo "All DB information changed."
echo ""
echo ""

# Changing domain name in DB. 
echo "Changing site domain information to information in DB."
mysql -h$MIRROR_DB_HOST -u$MIRROR_DB_USER -p$MIRROR_DB_PASSWD $MIRROR_DB_NAME -e "UPDATE ${DB_PREFIX}domains SET domain = \"${MIRROR_DOMAIN}\" WHERE domain = \"${ORIGIN_DOMAIN}\";"
mysql -h$MIRROR_DB_HOST -u$MIRROR_DB_USER -p$MIRROR_DB_PASSWD $MIRROR_DB_NAME -e "UPDATE ${DB_PREFIX}sites SET domain = \"${MIRROR_DOMAIN}\" WHERE domain = \"${ORIGIN_DOMAIN}\";"
echo ""
echo "done."
echo ""
echo "Site migration(mirroring) complete."

 

 

파일은 여기서 다운 받으면 됩니다.

site_mirror_fin_eng.sh

 

 

미러링 목적으로 제작되었지만, 도메인 이전이나, 서버 이전에 사용되는 스크립트 입니다.

 

  • profile
    네모 2017.11.06 00:47
    DB내에 절대경로로 불러온 내부 이미지 같은건 수정이 안되는거죠?
  • profile
    맛스타 2017.11.06 01:04
    맨 마지막
    mysql -h$MIRROR_DB_HOST -u$MIRROR_DB_USER -p$MIRROR_DB_PASSWD $MIRROR_DB_NAME -e "UPDATE ${DB_PREFIX}domains SET domain = \"${MIRROR_DOMAIN}\" WHERE domain = \"${ORIGIN_DOMAIN}\";"

    부분을 조금 손보면 됩니다만, 일일이 확인하면서 변경하는게 제일 좋습니다.
  • profile
    네모 2017.11.06 01:08
    그러네요. 직접 변경하는게 안전할 것 같습니다!
    실험용 미러링이 목적이라면 별 문제 없겠지만, 로컬에서 개발해서 고객 서버로 넘기는 용도로 쓰기에는 조금 불안하네요ㅠㅠ

    개발할때 최대한 상대경로를 쓰는게 맞는데..
    손에 안익네요ㅠㅠ
  • profile
    맛스타 2017.11.06 01:11
    절대경로를 쓰면 도메인이 변경되었을때는....

    으으...
  • profile
    네모 2017.11.06 01:14
    ㅠㅠ 개발할때 절대경로쓰고 서버에 옮기면서 상대경로로 하나하나 바꿔줍니다...
    서버에 옮길때마다 귀찮아서 다음부터는 상대경로 써야지... 하는데 다음에 보면 또 절대경로를 쓰고 있더군요..
    코딩할때는 대부분 상대경로를 쓰는데, 설정값이아 해야하나? 그런거에 계속 절대경로를 넣어서.....ㅠㅠ
  • profile
    맛스타 2017.11.06 01:15
    헝~ 고생이 많으시겠네요 ㄷㄷㄷ
  • profile
    네모 2017.11.06 01:15
    ㅠㅠ 습관이 정말 중요한 것 같아요!! ㅠㅠ

  1. 일반 웹 호스팅과 VPS와 서버 구입의 차이점

    Date2018.03.08 Category집 서버 구축 By맛스타 Views2672
    Read More
  2. 도메인 연결 방식 이해하기 (2)

    Date2017.11.21 Category네트워크 관련 By맛스타 Views801
    Read More
  3. 도메인 연결방식 이해하기 (1)

    Date2017.11.19 Category네트워크 관련 By맛스타 Views519
    Read More
  4. IIS 에서 PHP 설정하기

    Date2017.11.14 Category집 서버 구축 By맛스타 Views752
    Read More
  5. IIS에서 MySQL 5.7 설치하기

    Date2017.11.09 Category윈도우 팁 By맛스타 Views471
    Read More
  6. 사이트 미러링 스크립트.

    Date2017.11.06 Category리눅스 팁 By맛스타 Views414
    Read More
  7. IIS10에서 PHP 설치하기

    Date2017.11.04 Category집 서버 구축 By맛스타 Views603
    Read More
  8. SSH 암호 없이 로그인 하기

    Date2017.11.02 Category리눅스 팁 By맛스타 Views744
    Read More
  9. 웹서버 IIS 설치하기

    Date2017.11.01 Category집 서버 구축 By맛스타 Views577
    Read More
  10. 관리자 계정 활성화하기

    Date2017.10.30 Category집 서버 구축 By맛스타 Views663
    Read More
  11. 본격적으로 서버 구축하기 - 인트로

    Date2017.10.29 Category집 서버 구축 By맛스타 Views803
    Read More
  12. 서버 선택하기 - (2)

    Date2017.10.26 Category집 서버 구축 By맛스타 Views566
    Read More
  13. 서버 선택하기 - (1)

    Date2017.10.24 Category집 서버 구축 By맛스타 Views881
    Read More
  14. OS 선택하기

    Date2017.10.22 Category집 서버 구축 By맛스타 Views1576
    Read More
  15. 맛스타의 Study For Us 입니다.

    Date2017.10.21 By맛스타 Views559
    Read More
목록
Board Pagination Prev 1 Next
/ 1
서버에 요청 중입니다. 잠시만 기다려 주십시오...