DDGR 님의 리플글을 보고... 정보
기타 DDGR 님의 리플글을 보고...
첨부파일
본문
커뮤니티 자유 게시판에 관리자님의 호스팅 업체를 알려달라는 글에 달린 DDGR님의 리플글을 보고 올립니다.
웹호스팅 사용자를 위한 쉘스크립트이고 서로 자기 서버 상태에 맞게끔 수정한채로 돌아다니는거라 원 제작자는 누군지 모르겠습니다.
주요기능
1 계정(SSH/Telnet) 암호 변경
2 계정(HDD) 사용량 조회
3 계정(HDD) 백업
4 데이타베이스(MySQL) 암호변경
5 데이타베이스(MySQL) 백업
6 데이타베이스(MySQL) 복구
7 데이타베이스(MySQL) 초기화
8 알지보드설치
9 제로보드설치
10. 그누보드 설치
11 블로그(테터툴즈) 설치
이고 다운로드 받으신 후 파일 소스중 제로보드, 알지보드, 그누보드, 테터툴즈의 경로를 설정한 뒤 자신의 계정에 업로드 하시고 파일에 실행권한을 주신 후 실행 하시면 됩니다.
chmod 700 gnu
./gnu
다음은 소스입니다.
#!/bin/bash
##############################################################################
#
# 프로그램 명 : GNU 쉘 메니져
#
##############################################################################
##############################################################################
# 각종변수 설정
##############################################################################
# 버전
VERSION="1.0"
# mysql 경로
MYSQL_EXEC="mysql"
# mysqldump 경로
MYSQLDUMP_EXEC="mysqldump"
# 알지보드 파일 경로
RGBOARD_FILE=""
# 제로보드 파일 경로
ZEROBOARD_FILE=""
# 그누보드 파일 경로
GNUBOARD_FILE=""
# 테터툴즈 파일 경로
TATTER_FILE=""
# 웹 절대 경로
WEB_ROOT=""
# 계정명
USER=`whoami`
# 절대경로
PWD=`cd ~;pwd`
if [ "$USER" = "" ]; then
echo "계정명을 알 수 없습니다.
서버관리자에게 문의하세요."
exit 1
fi
##############################################################################
# 웹 절대경로를 찾는다. 우선 순위 html , www , public_html , 계정 루트
##############################################################################
WEB_ROOT=$PWD
# html 디렉토리가 있다면
if [ -d "$PWD/html" ]; then
WEB_ROOT="$PWD/html"
fi
# www 디렉토리가 있다면
if [ -d "$PWD/www" ]; then
WEB_ROOT="$PWD/www"
fi
# public_html 디렉토리가 있다면
if [ -d "$PWD/public_html" ]; then
WEB_ROOT="$PWD/public_html"
fi
##############################################################################
##############################################################################
# 계정 암호를 변경
##############################################################################
PASSWORD_CHANG() {
clear
echo "===================================================================
계정 암호 변경
===================================================================
1. Telnet/SSH/FTP 암호가 동시에 변경됩니다.
2. 데이타베이스(Mysql) 암호는 변경되지 않습니다.
3. 암호 변경 방법
(current) UNIX password: [현재 암호 입력]
New password: [변경할 암호 입력]
Retype new password: [변경 암호 재입력]
4. 입력한 암호는 표시되지 않습니다.
5. 영문자와 숫자로 6자 이상 연속된 문자를 제외하고 입력하세요.
";
passwd
if [ "$?" = "0" ]; then
echo "정상적으로 변경되었습니다."
else
echo "암호 변경시 에러가 발생했습니다."
fi
}
##############################################################################
# 계정 사용량 조회
##############################################################################
HDD_QUOTA() {
clear
echo "===================================================================
계정(HDD) 사용량 조회
===================================================================
"
quota -s
echo "
1. blocks : 현재 사용중인 용량
2. 첫번째 quota : 현재 사용자가 사용할 수 있는 용량
3. 첫번째 limit : 현재 사용자가 사용할 수 있는 한계치
4. 용량표시가 없는경우 Kbyte 단위입니다.";
}
##############################################################################
# 계정 백업
##############################################################################
HDD_BACKUP() {
clear
echo -n "===================================================================
계정(HDD) 백업
===================================================================
1. 새로 만들어질 백업파일의 크기가 남은 HDD 사용량을 초과 할 경우
에러가 발생할수 있습니다. 사용하지 않는 파일을 삭제 후 백업하세요.
2. 일부 업로드된 파일은 에러가 발생할 수 있습니다.
3. 기존 backup- 으로 시작하는 파일은 삭제가 됩니다.
백업하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
BACKUP_FILE_NAME="backup-"`date +%Y%m%d`".tar.gz"
BACKUP_FILE="$WEB_ROOT/$BACKUP_FILE_NAME"
echo "백업 파일명 : $BACKUP_FILE_NAME"
echo "백업중 ... (백업이 완료될 때까지 기다려 주세요.)"
cd ~
if [ -f "$BACKUP_FILE_NAME" ]; then
rm $BACKUP_FILE_NAME
fi
for file in $WEB_ROOT/backup-*
do
if [ -f "$file" ]; then
rm $file
fi
done
tar zcf $BACKUP_FILE_NAME *
echo "백업 종료 ..."
mv $BACKUP_FILE_NAME $BACKUP_FILE
echo "$BACKUP_FILE 으로 백업되었습니다."
echo "다운로드 위치 : http://도메인명/$BACKUP_FILE_NAME"
}
##############################################################################
# 데이타베이스(MYSQL) 암호 변경
##############################################################################
MYSQL_PASSWORD_CHANG() {
clear
echo "===================================================================
데이타베이스(MYSQL) 암호변경
===================================================================
1. 암호는 공백없이 영문자, 숫자로 입력하세요.
2. 암호를 변경시 MYSQL을 사용하는 프로그램의 설정도 변경해야 합니다.
3. 암호는 화면에 표시되지 않습니다.
"
echo -n "데이타베이스 유저 아이디 [$USER] : "; read DBUSER
echo -n "데이타베이스 기존 암호 : "; read -s DBPASSWORD; echo
echo -n "데이타베이스 새 암호 : "; read -s DBNEWPASSWORD1; echo
echo -n "데이타베이스 암호 확인 : "; read -s DBNEWPASSWORD2; echo
if [ "$DBUSER" == "" ]; then
DBUSER="$USER"
fi
if [ "$DBPASSWORD" == "" ]; then
echo "기존 암호를 입력하세요."
return 1
fi
if [ "$DBNEWPASSWORD1" == "" ]; then
echo "새 암호를 입력하세요."
return 1
fi
if [ "$DBNEWPASSWORD1" != "$DBNEWPASSWORD2" ]; then
echo "새 암호가 동일하지 않습니다."
return 1
fi
$MYSQL_EXEC -u$DBUSER -p$DBPASSWORD -e "set password=password('$DBNEWPASSWORD1');"
if [ "$?" = "0" ]; then
echo "정상적으로 변경되었습니다."
else
echo "암호 변경시 에러가 발생했습니다."
fi
}
##############################################################################
# 데이타베이스(MYSQL) 백업
##############################################################################
MYSQL_BACKUP() {
clear
echo "===================================================================
데이타베이스(MYSQL) 백업
===================================================================
1. 새로 만들어질 백업파일의 크기가 남은 HDD 사용량을 초과 할 경우
에러가 발생할수 있습니다. 사용하지 않는 파일을 삭제후 백업하세요.
2. 기존 mysql- 으로 시작하는 파일은 삭제가 됩니다.
3. 암호는 화면에 표시되지 않습니다.
백업하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
echo -n "데이타베이스 유저 아이디 [$USER] : "; read DBUSER
echo -n "데이타베이스 암호 : "; read -s DBPASSWORD; echo
if [ "$DBUSER" == "" ]; then
DBUSER="$USER"
fi
if [ "$DBPASSWORD" == "" ]; then
echo "기존 암호를 입력하세요."
return 1
fi
BACKUP_FILE_NAME="mysql-"`date +%Y%m%d`".sql"
BACKUP_FILE="$WEB_ROOT/$BACKUP_FILE_NAME"
echo "백업 파일명 : $BACKUP_FILE_NAME"
echo "백업중 ... (백업이 완료될 때까지 기다려 주세요.)"
cd ~
if [ -f "$BACKUP_FILE_NAME" ]; then
rm $BACKUP_FILE_NAME
fi
for file in $WEB_ROOT/mysql-*
do
if [ -f "$file" ]; then
rm $file
fi
done
$MYSQLDUMP_EXEC -u$DBUSER -p$DBPASSWORD $DBUSER > $BACKUP_FILE_NAME
if [ "$?" != "0" ]; then
echo "에러가 발생했습니다."
return 1
fi
echo "백업 종료 ..."
mv $BACKUP_FILE_NAME $BACKUP_FILE
echo "$BACKUP_FILE 으로 백업되었습니다."
echo "다운로드 위치 : http://도메인명/$BACKUP_FILE_NAME"
}
##############################################################################
# 데이타베이스(MYSQL) 복구
##############################################################################
MYSQL_RESTORE() {
clear
echo "===================================================================
데이타베이스(MYSQL) 복구
===================================================================
1. 백업파일은 계정의 루트 또는 웹 디렉토리에 올려 주세요.
2. 복구할 데이타베이스 백업 파일을 입력하세요.
3. 중복된 테이블이 있을 경우 에러가 발생하므로 데이타베이스를
초기화 하신 후 복구 하십시요.
4. 암호는 화면에 표시되지 않습니다.
"
echo -n "데이타베이스 유저 아이디 [$USER] : "; read DBUSER
echo -n "데이타베이스 암호 : "; read -s DBPASSWORD; echo
echo -n "데이타베이스 백업 파일명 : "; read SQL_FILE;
if [ "$DBUSER" == "" ]; then
DBUSER="$USER"
fi
if [ "$DBPASSWORD" == "" ]; then
echo "기존 암호를 입력하세요."
return 1
fi
BACKUP_FILE=""
if [ -f "$WEB_ROOT/$SQL_FILE" ]; then
BACKUP_FILE="$WEB_ROOT/$SQL_FILE"
fi
if [ -f "$PWD/$SQL_FILE" ]; then
BACKUP_FILE="$PWD/$SQL_FILE"
fi
if [ "$BACKUP_FILE" == "" ]; then
echo "백업 파일을 찾을 수 없습니다. 파일명을 확인하세요."
return 1
fi
echo "복구 파일명 : $BACKUP_FILE"
echo -n "복구하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
echo "복구중 ... (완료될 때까지 기다려 주세요)"
$MYSQL_EXEC -u$DBUSER -p$DBPASSWORD $DBUSER < $BACKUP_FILE
if [ "$?" != "0" ]; then
echo "에러가 발생했습니다."
return 1
fi
echo "복구 성공 ..."
}
##############################################################################
# 데이타베이스(MYSQL) 초기화
##############################################################################
MYSQL_ALL_TABLE_DELETE() {
clear
echo "===================================================================
데이타베이스(MYSQL) 초기화
===================================================================
1. 데이타베이스내의 모든 테이블을 삭제하오니 신중히 실행 하십시요.
2. 암호는 화면에 표시되지 않습니다.
"
echo -n "데이타베이스 유저 아이디 [$USER] : "; read DBUSER
echo -n "데이타베이스 암호 : "; read -s DBPASSWORD; echo
if [ "$DBUSER" == "" ]; then
DBUSER="$USER"
fi
if [ "$DBPASSWORD" == "" ]; then
echo "기존 암호를 입력하세요."
return 1
fi
TABLE_LIST=`$MYSQL_EXEC -u$DBUSER -p$DBPASSWORD $DBUSER -e "show tables" | grep -v "Tables_in_"`
if [ "$?" != "0" ]; then
echo "이미 초기화된 상태이거나 에러가 발생했습니다."
return 1
fi
if [ "$TABLE_LIST" == "" ]; then
echo "이미 초기화된 상태입니다."
return 1
fi
echo -n "모든 테이블을 삭제하시겠습니까? yes/[no] : "
read key
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
echo "삭제중 ... (완료될 때까지 기다려 주세요.)"
for TABLE in $TABLE_LIST
do
# echo "테이블 삭제 => $TABLE"
$MYSQL_EXEC -u$DBUSER -p$DBPASSWORD $DBUSER $dbname -e "drop table $TABLE"
done
if [ "$?" != "0" ]; then
echo "에러가 발생했습니다."
return 1
fi
echo "$DBUSER 이 성공적으로 초기화 되었습니다"
}
##############################################################################
# 알지보드 설치
##############################################################################
RGBOARD_INSTALL() {
clear
echo -n "===================================================================
알지보드 설치
===================================================================
1. 알지보드를 설치합니다.
2. 이미 설치 되어 있다면 덮어 쓰게 됩니다.
설치하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
if [ ! -f "$RGBOARD_FILE" ]; then
echo "알지보드 설치 파일을 찾을 수 없습니다."
return 1
fi
cd $WEB_ROOT
tar zxf $RGBOARD_FILE
chmod 707 rgboard/data
echo "성공적으로 설치되었습니다.
http://도메인명/rgboard/admin/install.php 으로 접속하세요.
관리자 페이지 : http://도메인명/rgboard/admin
자세한 사용법은 홈페이지(http://www.rgboard.com)를 참고하십시요."
}
##############################################################################
# 제로보드 설치
##############################################################################
ZEROBOARD_INSTALL() {
clear
echo -n "===================================================================
제로보드 설치
===================================================================
1. 제로보드를 설치합니다.
2. 이미 설치 되어있다면 덮어 쓰게 됩니다.
설치하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
if [ ! -f "$ZEROBOARD_FILE" ]; then
echo "제로보드 설치 파일을 찾을 수 없습니다."
return 1
fi
cd $WEB_ROOT
tar zxf $ZEROBOARD_FILE
chmod 707 bbs
echo "성공적으로 설치되었습니다.
http://도메인명/bbs/install.php 으로 접속하세요.
관리자 페이지 : http://도메인명/bbs/admin.php
자세한 사용법은 홈페이지(http://www.nzeo.com)를 참고하십시요."
}
##############################################################################
# 그누보드 설치
##############################################################################
GNUBOARD_INSTALL() {
clear
echo -n "===================================================================
그누보드 설치
===================================================================
1. 그누보드를 설치합니다.
2. 이미 설치 되어 있다면 덮어 쓰게 됩니다.
설치하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
if [ ! -f "$GNUBOARD_FILE" ]; then
echo "그누보드 설치 파일을 찾을 수 없습니다."
return 1
fi
cd $WEB_ROOT
tar zxf $GNUBOARD_FILE
chmod 707 gnu3
echo "성공적으로 설치되었습니다.
http://도메인명/gnu3/install/install.php 로 접속하세요.
자세한 사용법은 홈페이지(http://www.sir.co.kr)를 참고하십시요."
}
##############################################################################
# 블로그(테터툴즈) 설치
##############################################################################
TATTER_INSTALL() {
clear
echo -n "===================================================================
블로그(테터툴즈) 설치
===================================================================
1. 블로그(테터툴즈)를 설치합니다.
2. 이미 설치 되어 있다면 덮어 쓰게 됩니다.
설치하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
if [ ! -f "$TATTER_FILE" ]; then
echo "테터툴즈 설치파일을 찾을 수 없습니다."
return 1
fi
cd $WEB_ROOT
tar zxf $TATTER_FILE
chmod 707 tt
echo "성공적으로 설치되었습니다.
http://도메인명/tt/install.php 으로 접속하세요.
관리자 페이지 : http://도메인명/tt/admin/article.php
자세한 사용법은 홈페이지(http://www.tattertools.com)를 참고하십시요."
}
##############################################################################
# 웹 절대 경로 변경
##############################################################################
WEB_ROOT_CHANGE() {
clear
echo -n "===================================================================
웹 절대 경로 설정 변경
===================================================================
1. 홈페이지 절대경로를 수정합니다.
2. 홈페이지를 올리시는 실제 경로를 입력하세요.
3. 실제 홈페이지 경로가 변경되는 것은 아닙니다.
4. 현재 $WEB_ROOT 로 설정되어 있습니다.
경로변경 : $PWD/"
read WEB_PATH
if [ ! -d "$PWD/$WEB_PATH" ]; then
echo "$PWD/$WEB_PATH 를 찾지 못했습니다."
echo "경로가 수정되지 않았습니다."
return 1
fi
if [ "$WEB_PATH" != "" ]; then
WEB_PATH="$PWD/$WEB_PATH"
else
WEB_PATH="$PWD"
fi
echo -n "$WEB_PATH 로 수정하시겠습니까? [yes]/no:"
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" == "yes" ]; then
WEB_ROOT="$WEB_PATH"
echo "$WEB_ROOT 로 변경되었습니다."
else
echo "변경되지 않았습니다."
fi
}
while [ : ]
do
clear
echo -n "===================================================================
GNU 쉘 메니져 V$VERSION (번호를 선택하세요.)
===================================================================
계정명 : $USER, 웹 절대 경로 : $WEB_ROOT
===================================================================
1. 계정(SSH/Telnet) 암호 변경 | 4. 데이타베이스(MySQL) 암호변경
2. 계정(HDD) 사용량 조회 | 5. 데이타베이스(MySQL) 백업
3. 계정(HDD) 백업 | 6. 데이타베이스(MySQL) 복구
| 7. 데이타베이스(MySQL) 초기화
11. 알지보드 설치 | 13. 그누보드 설치
12. 제로보드 설치 | 14. 블로그(테터툴즈) 설치
11. 웹 절대 경로 설정변경 쉘 매니저 강제 종료 : Ctrl + C
99. 쉘 매니저 종료 글수정 : Ctrl+Backspace
===================================================================
번호를 입력하세요 : "
read menu
case "$menu" in
"1") PASSWORD_CHANG;;
"2") HDD_QUOTA;;
"3") HDD_BACKUP;;
"4") MYSQL_PASSWORD_CHANG;;
"5") MYSQL_BACKUP;;
"6") MYSQL_RESTORE;;
"7") MYSQL_ALL_TABLE_DELETE;;
"11") RGBOARD_INSTALL;;
"12") ZEROBOARD_INSTALL;;
"13") GNUBOARD_INSTALL;;
"14") TATTER_INSTALL;;
"21") WEB_ROOT_CHANGE;;
"99") break;;
*) echo "다시 선택해주세요.";;
esac
echo
echo -n "[Enter]키를 눌러주세요.";read
done
clear
echo "GNU 쉘 메니져 V$VERSION 을 종료합니다."
echo "완전히 종료를 하시려면 Ctrl+D 또는 exit 명령을 입력하십시요."
echo
관리자님 혹시 저작권상 문제가 생기면 삭제 부탁드립니다.
웹호스팅 사용자를 위한 쉘스크립트이고 서로 자기 서버 상태에 맞게끔 수정한채로 돌아다니는거라 원 제작자는 누군지 모르겠습니다.
주요기능
1 계정(SSH/Telnet) 암호 변경
2 계정(HDD) 사용량 조회
3 계정(HDD) 백업
4 데이타베이스(MySQL) 암호변경
5 데이타베이스(MySQL) 백업
6 데이타베이스(MySQL) 복구
7 데이타베이스(MySQL) 초기화
8 알지보드설치
9 제로보드설치
10. 그누보드 설치
11 블로그(테터툴즈) 설치
이고 다운로드 받으신 후 파일 소스중 제로보드, 알지보드, 그누보드, 테터툴즈의 경로를 설정한 뒤 자신의 계정에 업로드 하시고 파일에 실행권한을 주신 후 실행 하시면 됩니다.
chmod 700 gnu
./gnu
다음은 소스입니다.
#!/bin/bash
##############################################################################
#
# 프로그램 명 : GNU 쉘 메니져
#
##############################################################################
##############################################################################
# 각종변수 설정
##############################################################################
# 버전
VERSION="1.0"
# mysql 경로
MYSQL_EXEC="mysql"
# mysqldump 경로
MYSQLDUMP_EXEC="mysqldump"
# 알지보드 파일 경로
RGBOARD_FILE=""
# 제로보드 파일 경로
ZEROBOARD_FILE=""
# 그누보드 파일 경로
GNUBOARD_FILE=""
# 테터툴즈 파일 경로
TATTER_FILE=""
# 웹 절대 경로
WEB_ROOT=""
# 계정명
USER=`whoami`
# 절대경로
PWD=`cd ~;pwd`
if [ "$USER" = "" ]; then
echo "계정명을 알 수 없습니다.
서버관리자에게 문의하세요."
exit 1
fi
##############################################################################
# 웹 절대경로를 찾는다. 우선 순위 html , www , public_html , 계정 루트
##############################################################################
WEB_ROOT=$PWD
# html 디렉토리가 있다면
if [ -d "$PWD/html" ]; then
WEB_ROOT="$PWD/html"
fi
# www 디렉토리가 있다면
if [ -d "$PWD/www" ]; then
WEB_ROOT="$PWD/www"
fi
# public_html 디렉토리가 있다면
if [ -d "$PWD/public_html" ]; then
WEB_ROOT="$PWD/public_html"
fi
##############################################################################
##############################################################################
# 계정 암호를 변경
##############################################################################
PASSWORD_CHANG() {
clear
echo "===================================================================
계정 암호 변경
===================================================================
1. Telnet/SSH/FTP 암호가 동시에 변경됩니다.
2. 데이타베이스(Mysql) 암호는 변경되지 않습니다.
3. 암호 변경 방법
(current) UNIX password: [현재 암호 입력]
New password: [변경할 암호 입력]
Retype new password: [변경 암호 재입력]
4. 입력한 암호는 표시되지 않습니다.
5. 영문자와 숫자로 6자 이상 연속된 문자를 제외하고 입력하세요.
";
passwd
if [ "$?" = "0" ]; then
echo "정상적으로 변경되었습니다."
else
echo "암호 변경시 에러가 발생했습니다."
fi
}
##############################################################################
# 계정 사용량 조회
##############################################################################
HDD_QUOTA() {
clear
echo "===================================================================
계정(HDD) 사용량 조회
===================================================================
"
quota -s
echo "
1. blocks : 현재 사용중인 용량
2. 첫번째 quota : 현재 사용자가 사용할 수 있는 용량
3. 첫번째 limit : 현재 사용자가 사용할 수 있는 한계치
4. 용량표시가 없는경우 Kbyte 단위입니다.";
}
##############################################################################
# 계정 백업
##############################################################################
HDD_BACKUP() {
clear
echo -n "===================================================================
계정(HDD) 백업
===================================================================
1. 새로 만들어질 백업파일의 크기가 남은 HDD 사용량을 초과 할 경우
에러가 발생할수 있습니다. 사용하지 않는 파일을 삭제 후 백업하세요.
2. 일부 업로드된 파일은 에러가 발생할 수 있습니다.
3. 기존 backup- 으로 시작하는 파일은 삭제가 됩니다.
백업하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
BACKUP_FILE_NAME="backup-"`date +%Y%m%d`".tar.gz"
BACKUP_FILE="$WEB_ROOT/$BACKUP_FILE_NAME"
echo "백업 파일명 : $BACKUP_FILE_NAME"
echo "백업중 ... (백업이 완료될 때까지 기다려 주세요.)"
cd ~
if [ -f "$BACKUP_FILE_NAME" ]; then
rm $BACKUP_FILE_NAME
fi
for file in $WEB_ROOT/backup-*
do
if [ -f "$file" ]; then
rm $file
fi
done
tar zcf $BACKUP_FILE_NAME *
echo "백업 종료 ..."
mv $BACKUP_FILE_NAME $BACKUP_FILE
echo "$BACKUP_FILE 으로 백업되었습니다."
echo "다운로드 위치 : http://도메인명/$BACKUP_FILE_NAME"
}
##############################################################################
# 데이타베이스(MYSQL) 암호 변경
##############################################################################
MYSQL_PASSWORD_CHANG() {
clear
echo "===================================================================
데이타베이스(MYSQL) 암호변경
===================================================================
1. 암호는 공백없이 영문자, 숫자로 입력하세요.
2. 암호를 변경시 MYSQL을 사용하는 프로그램의 설정도 변경해야 합니다.
3. 암호는 화면에 표시되지 않습니다.
"
echo -n "데이타베이스 유저 아이디 [$USER] : "; read DBUSER
echo -n "데이타베이스 기존 암호 : "; read -s DBPASSWORD; echo
echo -n "데이타베이스 새 암호 : "; read -s DBNEWPASSWORD1; echo
echo -n "데이타베이스 암호 확인 : "; read -s DBNEWPASSWORD2; echo
if [ "$DBUSER" == "" ]; then
DBUSER="$USER"
fi
if [ "$DBPASSWORD" == "" ]; then
echo "기존 암호를 입력하세요."
return 1
fi
if [ "$DBNEWPASSWORD1" == "" ]; then
echo "새 암호를 입력하세요."
return 1
fi
if [ "$DBNEWPASSWORD1" != "$DBNEWPASSWORD2" ]; then
echo "새 암호가 동일하지 않습니다."
return 1
fi
$MYSQL_EXEC -u$DBUSER -p$DBPASSWORD -e "set password=password('$DBNEWPASSWORD1');"
if [ "$?" = "0" ]; then
echo "정상적으로 변경되었습니다."
else
echo "암호 변경시 에러가 발생했습니다."
fi
}
##############################################################################
# 데이타베이스(MYSQL) 백업
##############################################################################
MYSQL_BACKUP() {
clear
echo "===================================================================
데이타베이스(MYSQL) 백업
===================================================================
1. 새로 만들어질 백업파일의 크기가 남은 HDD 사용량을 초과 할 경우
에러가 발생할수 있습니다. 사용하지 않는 파일을 삭제후 백업하세요.
2. 기존 mysql- 으로 시작하는 파일은 삭제가 됩니다.
3. 암호는 화면에 표시되지 않습니다.
백업하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
echo -n "데이타베이스 유저 아이디 [$USER] : "; read DBUSER
echo -n "데이타베이스 암호 : "; read -s DBPASSWORD; echo
if [ "$DBUSER" == "" ]; then
DBUSER="$USER"
fi
if [ "$DBPASSWORD" == "" ]; then
echo "기존 암호를 입력하세요."
return 1
fi
BACKUP_FILE_NAME="mysql-"`date +%Y%m%d`".sql"
BACKUP_FILE="$WEB_ROOT/$BACKUP_FILE_NAME"
echo "백업 파일명 : $BACKUP_FILE_NAME"
echo "백업중 ... (백업이 완료될 때까지 기다려 주세요.)"
cd ~
if [ -f "$BACKUP_FILE_NAME" ]; then
rm $BACKUP_FILE_NAME
fi
for file in $WEB_ROOT/mysql-*
do
if [ -f "$file" ]; then
rm $file
fi
done
$MYSQLDUMP_EXEC -u$DBUSER -p$DBPASSWORD $DBUSER > $BACKUP_FILE_NAME
if [ "$?" != "0" ]; then
echo "에러가 발생했습니다."
return 1
fi
echo "백업 종료 ..."
mv $BACKUP_FILE_NAME $BACKUP_FILE
echo "$BACKUP_FILE 으로 백업되었습니다."
echo "다운로드 위치 : http://도메인명/$BACKUP_FILE_NAME"
}
##############################################################################
# 데이타베이스(MYSQL) 복구
##############################################################################
MYSQL_RESTORE() {
clear
echo "===================================================================
데이타베이스(MYSQL) 복구
===================================================================
1. 백업파일은 계정의 루트 또는 웹 디렉토리에 올려 주세요.
2. 복구할 데이타베이스 백업 파일을 입력하세요.
3. 중복된 테이블이 있을 경우 에러가 발생하므로 데이타베이스를
초기화 하신 후 복구 하십시요.
4. 암호는 화면에 표시되지 않습니다.
"
echo -n "데이타베이스 유저 아이디 [$USER] : "; read DBUSER
echo -n "데이타베이스 암호 : "; read -s DBPASSWORD; echo
echo -n "데이타베이스 백업 파일명 : "; read SQL_FILE;
if [ "$DBUSER" == "" ]; then
DBUSER="$USER"
fi
if [ "$DBPASSWORD" == "" ]; then
echo "기존 암호를 입력하세요."
return 1
fi
BACKUP_FILE=""
if [ -f "$WEB_ROOT/$SQL_FILE" ]; then
BACKUP_FILE="$WEB_ROOT/$SQL_FILE"
fi
if [ -f "$PWD/$SQL_FILE" ]; then
BACKUP_FILE="$PWD/$SQL_FILE"
fi
if [ "$BACKUP_FILE" == "" ]; then
echo "백업 파일을 찾을 수 없습니다. 파일명을 확인하세요."
return 1
fi
echo "복구 파일명 : $BACKUP_FILE"
echo -n "복구하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
echo "복구중 ... (완료될 때까지 기다려 주세요)"
$MYSQL_EXEC -u$DBUSER -p$DBPASSWORD $DBUSER < $BACKUP_FILE
if [ "$?" != "0" ]; then
echo "에러가 발생했습니다."
return 1
fi
echo "복구 성공 ..."
}
##############################################################################
# 데이타베이스(MYSQL) 초기화
##############################################################################
MYSQL_ALL_TABLE_DELETE() {
clear
echo "===================================================================
데이타베이스(MYSQL) 초기화
===================================================================
1. 데이타베이스내의 모든 테이블을 삭제하오니 신중히 실행 하십시요.
2. 암호는 화면에 표시되지 않습니다.
"
echo -n "데이타베이스 유저 아이디 [$USER] : "; read DBUSER
echo -n "데이타베이스 암호 : "; read -s DBPASSWORD; echo
if [ "$DBUSER" == "" ]; then
DBUSER="$USER"
fi
if [ "$DBPASSWORD" == "" ]; then
echo "기존 암호를 입력하세요."
return 1
fi
TABLE_LIST=`$MYSQL_EXEC -u$DBUSER -p$DBPASSWORD $DBUSER -e "show tables" | grep -v "Tables_in_"`
if [ "$?" != "0" ]; then
echo "이미 초기화된 상태이거나 에러가 발생했습니다."
return 1
fi
if [ "$TABLE_LIST" == "" ]; then
echo "이미 초기화된 상태입니다."
return 1
fi
echo -n "모든 테이블을 삭제하시겠습니까? yes/[no] : "
read key
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
echo "삭제중 ... (완료될 때까지 기다려 주세요.)"
for TABLE in $TABLE_LIST
do
# echo "테이블 삭제 => $TABLE"
$MYSQL_EXEC -u$DBUSER -p$DBPASSWORD $DBUSER $dbname -e "drop table $TABLE"
done
if [ "$?" != "0" ]; then
echo "에러가 발생했습니다."
return 1
fi
echo "$DBUSER 이 성공적으로 초기화 되었습니다"
}
##############################################################################
# 알지보드 설치
##############################################################################
RGBOARD_INSTALL() {
clear
echo -n "===================================================================
알지보드 설치
===================================================================
1. 알지보드를 설치합니다.
2. 이미 설치 되어 있다면 덮어 쓰게 됩니다.
설치하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
if [ ! -f "$RGBOARD_FILE" ]; then
echo "알지보드 설치 파일을 찾을 수 없습니다."
return 1
fi
cd $WEB_ROOT
tar zxf $RGBOARD_FILE
chmod 707 rgboard/data
echo "성공적으로 설치되었습니다.
http://도메인명/rgboard/admin/install.php 으로 접속하세요.
관리자 페이지 : http://도메인명/rgboard/admin
자세한 사용법은 홈페이지(http://www.rgboard.com)를 참고하십시요."
}
##############################################################################
# 제로보드 설치
##############################################################################
ZEROBOARD_INSTALL() {
clear
echo -n "===================================================================
제로보드 설치
===================================================================
1. 제로보드를 설치합니다.
2. 이미 설치 되어있다면 덮어 쓰게 됩니다.
설치하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
if [ ! -f "$ZEROBOARD_FILE" ]; then
echo "제로보드 설치 파일을 찾을 수 없습니다."
return 1
fi
cd $WEB_ROOT
tar zxf $ZEROBOARD_FILE
chmod 707 bbs
echo "성공적으로 설치되었습니다.
http://도메인명/bbs/install.php 으로 접속하세요.
관리자 페이지 : http://도메인명/bbs/admin.php
자세한 사용법은 홈페이지(http://www.nzeo.com)를 참고하십시요."
}
##############################################################################
# 그누보드 설치
##############################################################################
GNUBOARD_INSTALL() {
clear
echo -n "===================================================================
그누보드 설치
===================================================================
1. 그누보드를 설치합니다.
2. 이미 설치 되어 있다면 덮어 쓰게 됩니다.
설치하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
if [ ! -f "$GNUBOARD_FILE" ]; then
echo "그누보드 설치 파일을 찾을 수 없습니다."
return 1
fi
cd $WEB_ROOT
tar zxf $GNUBOARD_FILE
chmod 707 gnu3
echo "성공적으로 설치되었습니다.
http://도메인명/gnu3/install/install.php 로 접속하세요.
자세한 사용법은 홈페이지(http://www.sir.co.kr)를 참고하십시요."
}
##############################################################################
# 블로그(테터툴즈) 설치
##############################################################################
TATTER_INSTALL() {
clear
echo -n "===================================================================
블로그(테터툴즈) 설치
===================================================================
1. 블로그(테터툴즈)를 설치합니다.
2. 이미 설치 되어 있다면 덮어 쓰게 됩니다.
설치하시겠습니까? [yes]/no : "
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" != "yes" ]; then
echo "취소하셨습니다."
return 1
fi
if [ ! -f "$TATTER_FILE" ]; then
echo "테터툴즈 설치파일을 찾을 수 없습니다."
return 1
fi
cd $WEB_ROOT
tar zxf $TATTER_FILE
chmod 707 tt
echo "성공적으로 설치되었습니다.
http://도메인명/tt/install.php 으로 접속하세요.
관리자 페이지 : http://도메인명/tt/admin/article.php
자세한 사용법은 홈페이지(http://www.tattertools.com)를 참고하십시요."
}
##############################################################################
# 웹 절대 경로 변경
##############################################################################
WEB_ROOT_CHANGE() {
clear
echo -n "===================================================================
웹 절대 경로 설정 변경
===================================================================
1. 홈페이지 절대경로를 수정합니다.
2. 홈페이지를 올리시는 실제 경로를 입력하세요.
3. 실제 홈페이지 경로가 변경되는 것은 아닙니다.
4. 현재 $WEB_ROOT 로 설정되어 있습니다.
경로변경 : $PWD/"
read WEB_PATH
if [ ! -d "$PWD/$WEB_PATH" ]; then
echo "$PWD/$WEB_PATH 를 찾지 못했습니다."
echo "경로가 수정되지 않았습니다."
return 1
fi
if [ "$WEB_PATH" != "" ]; then
WEB_PATH="$PWD/$WEB_PATH"
else
WEB_PATH="$PWD"
fi
echo -n "$WEB_PATH 로 수정하시겠습니까? [yes]/no:"
read key
if [ "$key" == "" ]; then
key="yes"
fi
if [ "$key" == "yes" ]; then
WEB_ROOT="$WEB_PATH"
echo "$WEB_ROOT 로 변경되었습니다."
else
echo "변경되지 않았습니다."
fi
}
while [ : ]
do
clear
echo -n "===================================================================
GNU 쉘 메니져 V$VERSION (번호를 선택하세요.)
===================================================================
계정명 : $USER, 웹 절대 경로 : $WEB_ROOT
===================================================================
1. 계정(SSH/Telnet) 암호 변경 | 4. 데이타베이스(MySQL) 암호변경
2. 계정(HDD) 사용량 조회 | 5. 데이타베이스(MySQL) 백업
3. 계정(HDD) 백업 | 6. 데이타베이스(MySQL) 복구
| 7. 데이타베이스(MySQL) 초기화
11. 알지보드 설치 | 13. 그누보드 설치
12. 제로보드 설치 | 14. 블로그(테터툴즈) 설치
11. 웹 절대 경로 설정변경 쉘 매니저 강제 종료 : Ctrl + C
99. 쉘 매니저 종료 글수정 : Ctrl+Backspace
===================================================================
번호를 입력하세요 : "
read menu
case "$menu" in
"1") PASSWORD_CHANG;;
"2") HDD_QUOTA;;
"3") HDD_BACKUP;;
"4") MYSQL_PASSWORD_CHANG;;
"5") MYSQL_BACKUP;;
"6") MYSQL_RESTORE;;
"7") MYSQL_ALL_TABLE_DELETE;;
"11") RGBOARD_INSTALL;;
"12") ZEROBOARD_INSTALL;;
"13") GNUBOARD_INSTALL;;
"14") TATTER_INSTALL;;
"21") WEB_ROOT_CHANGE;;
"99") break;;
*) echo "다시 선택해주세요.";;
esac
echo
echo -n "[Enter]키를 눌러주세요.";read
done
clear
echo "GNU 쉘 메니져 V$VERSION 을 종료합니다."
echo "완전히 종료를 하시려면 Ctrl+D 또는 exit 명령을 입력하십시요."
echo
관리자님 혹시 저작권상 문제가 생기면 삭제 부탁드립니다.
추천
0
0
댓글 전체
원제작 http://rgro.net/ (위 스크립트는 실제 알지로웹호스팅서비스에 이용하는걸로 알고있습니다.)
그누보드 까지 설치하는건 PHPSCHOOL 팁텍 게시판에 있져
그누보드 까지 설치하는건 PHPSCHOOL 팁텍 게시판에 있져
오 멋진 팁이군요. 감사합니다.