Linux WEB

웹 계정 추가 스크립트

2008.07.01 01:30

jook 조회 수:27225

ftp 계정, DB 계정, 가상호스트 추가 스크립트

apache, mysql 등의 버전차이에 따라 정상적으로 동작하지 않을 수도 있음.. ^^

=======================================================================================================
#!/bin/sh

sleep 1
# 사용자 계정 추가
echo "ftp 계정을 추가하시겠습니까?(y/n)"

read answer1

while [[ "$answer1" != "y" && "$answer1" != "n" && "$answer1" != "Y" && "$answer1" != "N" ]]
do
echo "잘못 입력하셨습니다. y 나 n 으로 입력해 주세요."
read answer1
done

if [ "$answer1" = y -o "$answer1" = Y ]
then
        echo "추가할 계정이름을 입력해 주세요."
        read username
        echo " "
        echo "$username 에서 사용할 패스워드를 입력해 주세요."
        if /usr/sbin/useradd $username; then
                /usr/bin/passwd $username
                chmod 701 /home/$username
                echo "$username 계정이 생성되었습니다."
        else
                echo " "
                echo "계정 생성에 실패 하였습니다. ERROR 라인을 확인 하시고 다시 시도하세요."
                echo " "
        fi
else [ "$answer1" = n -o "$answer1" = N ]
        echo "ftp 계정을 생성하지 않습니다."
fi

sleep 1
echo " "

# Database 추가
echo "DB 계정을 추가 하시겠습니까?(y/n)"

read answer2

while [[ "$answer2" != "y" && "$answer2" != "n" && "$answer2" != "Y" && "$answer2" != "N" ]]
do
echo "잘못 입력하셨습니다. y 나 n 으로 입력해 주세요."
read answer2
done

if [ "$answer2" = y -o "$answer2" = Y ]
then

        if netstat -nat | grep LISTEN | grep 3306 1>/dev/null
        then
                echo "추가할 DB명을 입력하고 엔터를 치세요."
                read db
                echo " "
                echo "사용할 DB user명을 입력하고 엔터를 치세요."
                read db_user
                echo " "
                echo "$db_user가 사용할 패스워드를 입력하고 엔터를 치세요."
                read passwd
                echo " "
                echo "create database $db;" >> query
                echo "use mysql;" >> query
                echo "insert into user (host,user,password) values('localhost','$db_user',password('$passwd'));" >> query
                echo "insert into db values('localhost','$db','$db_user','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');" >> query
                echo "flush privileges" >> query
                echo "mysql root계정의 패스워드를 입력 하세요."
                echo "mysql root계정의 패스워드가 설정되어 있지 않다면, 그냥 엔터를 치세요."
                if /usr/local/mysql/bin/mysql -u root -p < query; then
                        echo " "
                        echo "mysql db 및 계정이 추가 완료되었습니다. 아래와 같이 접속을 하세요."
                        echo " "
                        echo "/usr/local/mysql/bin/mysql -u $db_user -p $db"
                        echo " "
                else
                        echo " "
                        echo "DB 생성에 실패 하였습니다. ERROR 라인을 확인 하시고 다시 시도하세요."
                        echo " "
                fi
                rm -rf query
        else
                echo "mysql 데몬이 실행되어 있지 않습니다."
                echo "mysql 데몬을 실행합니다."
                echo " "
                /usr/local/mysql/share/mysql/mysql.server start
                echo " "
                echo "추가할 DB명을 입력하고 엔터를 치세요."
                read db
                echo " "
                echo "사용할 DB user명을 입력하고 엔터를 치세요"
                read db_user
                echo " "
                echo "$db_user가 사용할 패스워드를 입력하고 엔터를 치세요."
                read passwd
                echo " "
                echo "create database $db;" >> query
                echo "use mysql;" >> query
                echo "insert into user (host,user,password) values('localhost','$db_user',password('$passwd'));" >> query
                echo "insert into db values('localhost','$db','$db_user','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');" >> query
                echo "flush privileges" >> query
                echo "mysql root계정의 패스워드를 입력 하세요."
                echo "mysql root계정의 패스워드가 설정되어 있지 않다면, 그냥 엔터를 치세요."
                if /usr/local/mysql/bin/mysql -u root -p < query; then
                        echo " "
                        echo "mysql db 및 계정이 추가 완료되었습니다. 아래와 같이 접속을 하세요."
                        echo " "
                        echo "/usr/local/mysql/bin/mysql -u $db_user -p $db"
                        echo " "
                else
                        echo " "
                        echo "DB 생성에 실패 하였습니다. ERROR 라인을 확인 하시고 다시 시도하세요."
                        echo " "
                fi
                rm -rf query
        fi
else [ "$answer2" = n -o "$answer2" = N ]
        echo "DB 계정을 생성하지 않습니다."
fi

sleep 1
echo " "

# 가상호스트 추가
echo "가상호스트 추가를 하시겠습니까?(y/n)"

read answer3

while [[ "$answer3" != "y" && "$answer3" != "n" && "$answer3" != "Y" && "$answer3" != "N" ]]
do
echo "잘못 입력하셨습니다. y 나 n 으로 입력해 주세요."
read answer3
done

if [ "$answer3" = y -o "$answer3" = Y ]
then

        today=$(date +%y-%m-%d)
        ip=$(ifconfig | grep Bcast | awk '{print $2}'|cut -d: -f2)

        echo "추가할 도메인을 입력 하세요. ex) hostway.co.kr"
        read domain

        echo "DocumentRoot 디렉토리를 입력하세요. ex) /home/hostway/public_html"
        read Documentroot

        echo "관리자 e-mail 주소를 입력하세요. ex) admin@hostway.co.kr"
        read "email"

        if cat /usr/local/apache2/conf/httpd.conf | grep vhost | grep "#" 1>/dev/null
        then
        perl -pi -e 's/#Include conf/extra/httpd-vhosts.conf/Include conf/extra/httpd-vhosts.conf/g'  /usr/local/apache2/conf/httpd.conf
        mv /usr/local/apache2/conf/extra/httpd-vhosts.conf /usr/local/apache2/conf/extra/httpd-vhosts.conf-$today
        echo "NameVirtualHost $ip" > /usr/local/apache2/conf/extra/httpd-vhosts.conf
        echo " " >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
        echo "<VirtualHost $ip>" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
        echo "  ServerAdmin $email" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
        echo "  DocumentRoot $Documentroot" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
        echo "  ServerName $domain" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
        echo "  ServerAlias www.$domain" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
        echo "  ErrorLog logs/$domain-error_log" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
        echo "  CustomLog logs/$domain-access_log common" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
        echo "</VirtualHost>" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
        sleep 1
        echo "가상호스트 추가 작업이 완료되었습니다."
        echo "ftp 접속을 하셔서 $Documentroot 디렉토리에 홈페이지 자료를 업로드 하시기 바랍니다."
        /usr/local/apache2/bin/apachectl restart
        else
        cp /usr/local/apache2/conf/extra/httpd-vhosts.conf /usr/local/apache2/conf/extra/httpd-vhosts.conf-$today
        echo " " >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
        echo "<VirtualHost $ip>" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
                echo "  ServerAdmin $email" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
                echo "  DocumentRoot $Documentroot" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
                echo "  ServerName $domain" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
                echo "  ServerAlias www.$domain" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
                echo "  ErrorLog logs/$domain-error_log" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
                echo "  CustomLog logs/$domain-access_log common" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
                echo "</VirtualHost>" >> /usr/local/apache2/conf/extra/httpd-vhosts.conf
        sleep 1
        echo "가상호스트 추가 작업이 완료되었습니다."
        echo "ftp 접속을 하셔서 $Documentroot 디렉토리에 홈페이지 자료를 업로드 하시기 바랍니다."
        /usr/local/apache2/bin/apachectl restart
        fi
else [ "$answer3" = n -o "$answer3" = N ]
        echo "가상호스트를 추가하지 않습니다."
fi
=======================================================================================================

번호 제목 글쓴이 날짜 조회 수
43 PHP 컴파일시 /usr/bin/ld: cannot find -lltdl 오류 호스트웨이 2012.07.13 12545
42 [Apache] Image 관련 Log 남기지 않기 호스트웨이 2012.07.13 9705
41 PHP 업로드 파일 용량 제한 설정 호스트웨이 2012.07.06 10042
40 SSL config error 조치사항 호스트웨이 2012.06.29 9631
39 Apache2.4.x 버전 설치 호스트웨이 2012.06.22 23693
38 PHP-5.3 버전 이상에서 Deprecated 에러 발생시 처리 방법 호스트웨이 2012.06.22 14714
37 PHP 속도 향상을 위한 eAccelerator 설치 호스트웨이 2012.06.15 11264
36 ZendOptimizer 3.3.9 설치 file 호스트웨이 2012.06.01 17546
35 웹페이지에 사용자 인증 사용하기 호스트웨이 2012.05.18 8972
34 apache ssl 시작시 오류 메세지 호스트웨이 2012.05.11 10054
33 mod_GeoIP를 이용한 국가 IP 확인 및 국가별 접속 제한 호스트웨이 2012.05.04 19935
32 apache에서 cgi를 사용하기 위한 설정 방법 호스트웨이 2012.04.27 20125
31 Zend Guard Loader 설치 호스트웨이 2012.04.20 17811
30 PHP에서 MS-SQL 서버를 연동하기 위한 방법 호스트웨이 2012.04.13 25303
29 Linux log 분할 방법 (logrotate) 호스트웨이 2012.04.06 12587
28 APM 및 OS 버전 확인 하는 방법 호스트웨이 2012.03.30 13982
27 phpize를 이용하여 모듈 추가 file 호스트웨이 2012.03.15 15582
26 mod_rewrite 모듈 설치 및 기본 사용법 sylee 2009.07.02 38418
25 아파치2 에서 mod_cband 사용법 sylee 2009.06.05 24553
24 register_globals 옵션에 따른 변수 전달 jook 2009.02.19 34709