맛스타의 Study For Us

리눅스 팁
2017.11.06 00:19

사이트 미러링 스크립트.

조회 수 383 추천 수 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
    ㅠㅠ 습관이 정말 중요한 것 같아요!! ㅠㅠ

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
15 집 서버 구축 일반 웹 호스팅과 VPS와 서버 구입의 차이점 6 맛스타 2018.03.08 2632
14 네트워크 관련 도메인 연결 방식 이해하기 (2) 5 맛스타 2017.11.21 785
13 네트워크 관련 도메인 연결방식 이해하기 (1) 1 맛스타 2017.11.19 503
12 집 서버 구축 IIS 에서 PHP 설정하기 file 맛스타 2017.11.14 736
11 윈도우 팁 IIS에서 MySQL 5.7 설치하기 13 file 맛스타 2017.11.09 456
» 리눅스 팁 사이트 미러링 스크립트. 7 file 맛스타 2017.11.06 383
9 집 서버 구축 IIS10에서 PHP 설치하기 file 맛스타 2017.11.04 586
8 리눅스 팁 SSH 암호 없이 로그인 하기 4 file 맛스타 2017.11.02 711
7 집 서버 구축 웹서버 IIS 설치하기 2 file 맛스타 2017.11.01 486
6 집 서버 구축 관리자 계정 활성화하기 3 맛스타 2017.10.30 632
5 집 서버 구축 본격적으로 서버 구축하기 - 인트로 9 맛스타 2017.10.29 768
4 집 서버 구축 서버 선택하기 - (2) 6 file 맛스타 2017.10.26 520
3 집 서버 구축 서버 선택하기 - (1) 5 file 맛스타 2017.10.24 862
2 집 서버 구축 OS 선택하기 15 file 맛스타 2017.10.22 1521
1 맛스타의 Study For Us 입니다. 5 맛스타 2017.10.21 559
목록
Board Pagination Prev 1 Next
/ 1
서버에 요청 중입니다. 잠시만 기다려 주십시오...