웹호스팅 사용자를 위한 계정관리 스크립트
#!/bin/bash
##############################################################################
#
# 프로그램명 : RGRO Shell Manager
# 버전 : 1.1
# 최종수정일 : 2004년 6월 24일
#
# 제작자 : 윤범석 (알지보드)
# 홈페이지 : http://rgboard.com , http://rgro.net
# 본 프로그램은 비상업적인 목적으로 사용 가능합니다.
#
##############################################################################
##############################################################################
# 각종변수 설정
##############################################################################
# 버전
VERSION="1.1"
# mysql 경로
MYSQL_EXEC="mysql"
# mysqldump 경로
MYSQLDUMP_EXEC="mysqldump"
# 알지보드파일
RGBOARD_FILE=""
# 제로보드파일
ZEROBOARD_FILE=""
# 테터툴즈파일
TATTER_FILE=""
# 웹절대경로
WEB_ROOT=""
# 계정명
USER=`whoami`
# 절대경로
PWD=`cd ~;pwd`
if [ "$USER" = "" ]; then
echo "계정명을 알수없습니다.
서버관리자에게 문의하세요."
exit 1
fi
##############################################################################
# 웹절대경로를 찾는다 우선순위 www , public_html , 계정루트
##############################################################################
WEB_ROOT=$PWD
# public_html 디렉토리가 있다면
if [ -d "$PWD/public_html" ]; then
WEB_ROOT="$PWD/public_html"
fi
# www 디렉토리가 있다면
if [ -d "$PWD/www" ]; then
WEB_ROOT="$PWD/www"
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://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://nzeo.com) 를 참고하십시요."
}
##############################################################################
# 블로그(테터툴즈)설치
##############################################################################
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://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 "===================================================================
RGRO Shell Manager V$VERSION (번호를 선택하세요)
===================================================================
계정명 : $USER, 웹절대경로 : $WEB_ROOT
===================================================================
1. 계정(SSH/Telnet) 암호 변경 | 4. 데이타베이스(MySQL) 암호변경
2. 계정(HDD) 사용량 조회 | 5. 데이타베이스(MySQL) 백업
3. 계정(HDD) 백업 | 6. 데이타베이스(MySQL) 복구
| 7. 데이타베이스(MySQL) 초기화
8. 알지보드설치
9. 제로보드설치
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;;
"8") RGBOARD_INSTALL;;
"9") ZEROBOARD_INSTALL;;
"10") TATTER_INSTALL;;
"11") WEB_ROOT_CHANGE;;
"99") break;;
*) echo "다시 선택해주세요.";;
esac
echo
echo -n "[Enter]키를 눌러주세요.";read
done
clear
echo "RGRO Shell Manager V$VERSION 을 종료합니다."
echo "완전이 종료를 하시려면 Ctrl+D 또는 exit 명령을 입력하십시요."
echo
댓글 2개
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 7230 | 11년 전 | 3626 | ||
| 7229 | 11년 전 | 3752 | ||
| 7228 | 11년 전 | 3791 | ||
| 7227 | 11년 전 | 3916 | ||
| 7226 | 11년 전 | 2366 | ||
| 7225 | 11년 전 | 17457 | ||
| 7224 |
AngryDev
|
11년 전 | 1361 | |
| 7223 |
돌아온깡통
|
11년 전 | 1109 | |
| 7222 |
돌아온깡통
|
11년 전 | 1054 | |
| 7221 |
돌아온깡통
|
11년 전 | 887 | |
| 7220 |
돌아온깡통
|
11년 전 | 1008 | |
| 7219 |
돌아온깡통
|
11년 전 | 837 | |
| 7218 |
돌아온깡통
|
11년 전 | 667 | |
| 7217 |
돌아온깡통
|
11년 전 | 1058 | |
| 7216 |
돌아온깡통
|
11년 전 | 796 | |
| 7215 |
돌아온깡통
|
11년 전 | 712 | |
| 7214 |
돌아온깡통
|
11년 전 | 1064 | |
| 7213 |
돌아온깡통
|
11년 전 | 933 | |
| 7212 |
돌아온깡통
|
11년 전 | 720 | |
| 7211 |
돌아온깡통
|
11년 전 | 874 | |
| 7210 |
돌아온깡통
|
11년 전 | 901 | |
| 7209 |
돌아온깡통
|
11년 전 | 894 | |
| 7208 |
돌아온깡통
|
11년 전 | 1010 | |
| 7207 |
돌아온깡통
|
11년 전 | 626 | |
| 7206 |
돌아온깡통
|
11년 전 | 683 | |
| 7205 |
돌아온깡통
|
11년 전 | 871 | |
| 7204 |
돌아온깡통
|
11년 전 | 733 | |
| 7203 |
돌아온깡통
|
11년 전 | 748 | |
| 7202 |
돌아온깡통
|
11년 전 | 722 | |
| 7201 |
돌아온깡통
|
11년 전 | 675 | |
| 7200 |
돌아온깡통
|
11년 전 | 707 | |
| 7199 |
돌아온깡통
|
11년 전 | 1323 | |
| 7198 |
돌아온깡통
|
11년 전 | 658 | |
| 7197 |
돌아온깡통
|
11년 전 | 973 | |
| 7196 |
돌아온깡통
|
11년 전 | 876 | |
| 7195 |
돌아온깡통
|
11년 전 | 615 | |
| 7194 |
돌아온깡통
|
11년 전 | 648 | |
| 7193 |
돌아온깡통
|
11년 전 | 710 | |
| 7192 |
돌아온깡통
|
11년 전 | 743 | |
| 7191 |
joe031
|
11년 전 | 1271 | |
| 7190 | 11년 전 | 4161 | ||
| 7189 | 11년 전 | 1251 | ||
| 7188 |
잘살아보자
|
11년 전 | 963 | |
| 7187 | 11년 전 | 1439 | ||
| 7186 |
kiplayer
|
11년 전 | 7552 | |
| 7185 | 11년 전 | 1143 | ||
| 7184 |
잘살아보자
|
11년 전 | 2343 | |
| 7183 |
잘살아보자
|
11년 전 | 1152 | |
| 7182 |
잘살아보자
|
11년 전 | 1221 | |
| 7181 | 11년 전 | 1491 | ||
| 7180 |
하얀비요일
|
11년 전 | 989 | |
| 7179 |
잘살아보자
|
11년 전 | 992 | |
| 7178 | 11년 전 | 987 | ||
| 7177 | 11년 전 | 1008 | ||
| 7176 | 11년 전 | 1666 | ||
| 7175 |
|
11년 전 | 1048 | |
| 7174 |
kiplayer
|
11년 전 | 1178 | |
| 7173 | 11년 전 | 961 | ||
| 7172 |
잘살아보자
|
11년 전 | 4644 | |
| 7171 |
잘살아보자
|
11년 전 | 711 | |
| 7170 | 11년 전 | 1075 | ||
| 7169 |
초심의설렘
|
11년 전 | 1475 | |
| 7168 | 11년 전 | 1008 | ||
| 7167 |
잘살아보자
|
11년 전 | 5289 | |
| 7166 |
잘살아보자
|
11년 전 | 3440 | |
| 7165 | 11년 전 | 4959 | ||
| 7164 | 11년 전 | 836 | ||
| 7163 | 11년 전 | 1209 | ||
| 7162 |
울라라라우
|
11년 전 | 1387 | |
| 7161 | 11년 전 | 1261 | ||
| 7160 |
skyler
|
11년 전 | 1190 | |
| 7159 |
|
11년 전 | 708 | |
| 7158 |
|
11년 전 | 3357 | |
| 7157 |
잘살아보자
|
11년 전 | 2893 | |
| 7156 |
잘살아보자
|
11년 전 | 2226 | |
| 7155 |
잘살아보자
|
11년 전 | 1457 | |
| 7154 |
잘살아보자
|
11년 전 | 1451 | |
| 7153 | 11년 전 | 2898 | ||
| 7152 |
울라라라우
|
11년 전 | 831 | |
| 7151 | 11년 전 | 1064 | ||
| 7150 |
잘살아보자
|
11년 전 | 2387 | |
| 7149 |
잘살아보자
|
11년 전 | 3295 | |
| 7148 |
잘살아보자
|
11년 전 | 1193 | |
| 7147 |
잘살아보자
|
11년 전 | 765 | |
| 7146 |
잘살아보자
|
11년 전 | 1409 | |
| 7145 |
잘살아보자
|
11년 전 | 723 | |
| 7144 |
잘살아보자
|
11년 전 | 1314 | |
| 7143 |
잘살아보자
|
11년 전 | 764 | |
| 7142 |
잘살아보자
|
11년 전 | 1453 | |
| 7141 |
잘살아보자
|
11년 전 | 1200 | |
| 7140 |
잘살아보자
|
11년 전 | 2019 | |
| 7139 |
잘살아보자
|
11년 전 | 3679 | |
| 7138 |
잘살아보자
|
11년 전 | 3175 | |
| 7137 |
잘살아보자
|
11년 전 | 3632 | |
| 7136 |
잘살아보자
|
11년 전 | 1388 | |
| 7135 |
gooroo
|
11년 전 | 1617 | |
| 7134 |
열라뽕똬이
|
11년 전 | 2324 | |
| 7133 |
|
11년 전 | 1023 | |
| 7132 | 11년 전 | 1434 | ||
| 7131 | 11년 전 | 3577 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기