japanese site
온라인강좌책메일다운로드동아리쇼핑기술지원기업정보갤러리동영상 블로그
『신개념 4단계 리눅스기술지원 시스템 공개』

※ 『무료 리눅스 배포판 배송서비스』 ※

※ 게시판 용도에 맞지 않는 글(광고및 홍보 글 등)은 임의삭제될 수 있습니다.

 
작성일 : 09-11-27 12:38
쉘스크립트에 관한 완전 초보 질문이에요.
 글쓴이 : 완전초보
조회 : 1,301  
정말 초보적이고 기초적인건데 이런 질문 드려서 죄송하구요.
쉘스크립트에 관한 내용들이 굉장히 많은데요.
서버 어느곳에 스크립트를 넣어서 이런 파일을 어떻게 만들어서 실행을 시키는지를 모르겠어요.
정말 짧은 질문이지만 상세한 답변좀 부탁드려요.
완전 초보에요.

이 글을 트위터로 보내기 이 글을 페이스북으로 보내기

리온 09-11-27 13:38
 
쉘 스크립트는 윈도우즈로 따지면 .bat 과 같은 기능을 하는 파일입니다.
그 파일의 위치가 어디건 상관없습니다.

문제 그 파일에 중요한 내용이 포함되어있을 경우 권한문제에 신경쓰는것이
중요할 뿐입니다.
gurum 09-11-27 12:48
 
이런 경우는 어떨까요...? 우선 쉘에 대한 개념은 잠시 피하고 실질적으로 어떻게 유용한지를 말씀드리면 좀더 접근하시 쉬우시겠네요....

ㅇ시나리오)

저 웹호스팅 회사에서 근무하는 초보 리눅서 입니다. 고객들이 도메인을 주면 그 도메인을 가지고 아파치 conf 파일을 설정해 주는 일을 주 업무로 하고 있습니다.

그런데 어느 날 문득 이런 생각이 들더군요... 이 반복된 작업을 좀 쉽게 할 수 있는 방법이 없을까 하고 생각이 들기 시작하였습니다..

물론 1개든 10개든 아파티 conf에 등록을 해주면 되지만 ..;;

그래서 쉘 스크립트 생각을 했습니다.

'아 스크립트로 좀 더 편하게 등록해줘 볼까?'

다음은 허접하게 만든 우분투 시스템에 각 팀들을 등록시켜주는 쉘 스크립트 입니다.


=======================================================

#!/bin/bash

if [ -e /etc/apache2/mods-enabled/authnz_ldap.load ]

then
  echo " "
  echo "ldap, ssl modules 이미 설정되어 있습니다."
  echo " "

else
  echo " "
  echo "ldap, ssl modules 자동으로 설정합니다."
  echo " "
/bin/ln -s /etc/apache2/mods-available/authnz_ldap.load /etc/apache2/mods-enabled/
/bin/ln -s /etc/apache2/mods-available/ldap.load /etc/apache2/mods-enabled/
/bin/ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/
/bin/ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/
  echo "자동 설정을 완료하였습니다.###################################### "
fi

apache2_conf_add ()
{
        #등록할 trac 팀 정보 입력부분
        echo " "
        echo "종료를 원하시면 CTRL+C를 눌러 주세요"
        echo " "
        echo -n "추가할 TEAM 명을 입력해 주세요 : "
        read trac_team

        #등록할 trac_team이 존재하는지 검사
        if [ "$trac_team" = "`cat /etc/passwd | grep home | grep $trac_team | awk -F: '{ print $1 }'`" ]; then
#        if [ "$trac_team" = "`cat /etc/passwd | grep home | grep $trac_team | awk -F: '{ print $1 }'`" ]; then
                echo "${trac_team} 팀명이 존재합니다. 다른 팀명을 사용해 주세요."
                apache2_conf_add

        else
#              echo -n "${trac_team}에 사용할 암호를 입력해주세요 : "
#                read trac_pw
                echo -n "${trac_team}에 사용할 도메인을 입력해주세요 ex) rnd3.infraware.net : "
                read mdomain

        #trac_team 추가부분
        useradd $trac_team -c $mdomain
#      echo $trac_pw | passwd $trac_team --stdin
  echo "팀명에 대한 패스워드를 설정하겠습니다. : "
        /usr/bin/passwd ${trac_team}

        #VirtualHost 추가부분
        echo "<VirtualHost *:443>
                ServerAdmin lucifertear@gmail.com
                ServerName ${trac_team}.infraware.net
                DocumentRoot /var/www

                LogLevel warn
                CustomLog /var/log/apache2/${trac_team}_access.log combined
                ErrorLog /var/log/apache2/${trac_team}_error.log

                SSLEngine on
                SSLCertificateFile    /root/ssl/cert.pem
                SSLCertificateKeyFile /root/ssl/key.pem

                <Location /projects/${trac_team}>
                SetHandler mod_python
                PythonHandler trac.web.modpython_frontend
                PythonInterpreter main_interpreter
                PythonOption TracEnv /home/trac/${trac_team}
                PythonOption TracUriRoot /projects/${trac_team}
                SetEnv PYTHON_EGG_CACHE /home/trac/${trac_team}/.egg-cache

#              AuthType JOSSO
#              AuthName "JOSSO TEST"
#              GatewayLoginUrl "https://josso.infraware.net/josso/signon/login.do"
#              GatewayLogoutUrl "https://josso.infraware.net/josso/signon/logout.do"
#              GatewayEndpoint "josso.infraware.net" 8080

                AuthType Basic
                AuthName \""${trac_team} Trac"\"
                AuthBasicProvider ldap
                AuthzLDAPAuthoritative On

                AuthLDAPURL "ldap://ldapinfra.infraware.net:389/ou=People,dc=ldap,dc=infraware,dc=net?uid"
                AuthLDAPGroupAttribute memberUid
                AuthLDAPGroupAttributeIsDN off
                Require ldap-group cn=fulltime,ou=fulltime,ou=infraGroup,ou=infraware,ou=Group,dc=ldap,dc=infraware,dc=net
                </Location>

####### SVN CONF #######

              <Location /svn/${trac_team}>
              DAV svn
              SVNPath /svn/${trac_team}
              SVNPathAuthz off

              AuthType Basic
              AuthName \""${trac_team} Subversion Repository"\"
              AuthBasicProvider ldap
              AuthzLDAPAuthoritative On
              AuthLDAPURL "ldap://ldapinfra.infraware.net:389/ou=People,dc=ldap,dc=infraware,dc=net?uid"
              AuthLDAPGroupAttribute memberUid
              AuthLDAPGroupAttributeIsDN off
              Require ldap-group cn=fulltime,ou=fulltime,ou=infraGroup,ou=infraware,ou=Group,dc=ldap,dc=infraware,dc=net
              </Location>

####### MQ CONF #######
           
              <Location /mq${trac_team}>
              SetHandler mod_python
              PythonHandler trac.web.modpython_frontend
              PythonInterpreter main_interpreter
              PythonOption TracEnv /home/trac/${trac_team}
              PythonOption TracUriRoot /projects/${trac_team}
              SetEnv PYTHON_EGG_CACHE /home/trac/${trac_team}/.egg-cache
              </Location>

####### JavaScrit API #######

<Location /${trac_team}>
        SetHandler mod_python
        PythonHandler trac.web.modpython_frontend
        PythonInterpreter main_interpreter
        PythonOption TracEnv /home/trac/${trac_team}
        PythonOption TracUriRoot /${trac_team}
        SetEnv PYTHON_EGG_CACHE /home/trac/${trac_team}/.egg-cache
</Location>
</VirtualHost>" > /etc/apache2/sites-available/${mdomain}
              a2ensite ${mdomain}
#정보 출력       
        echo "${trac_team} 팀명이 추가되었습니다."
        echo "수동으로 apache2를 재 시작하여 주십시요.!!!!!!!!!!!!!!!!!!"
        exit
        fi
}
apache2_conf_add
 
   
 


『신개념 4단계 리눅스기술지원 시스템 공개』

CentOS 리눅스 전문서적 국내최초출시

 
회사소개 | 보도기사 | 채용안내 | 광고안내 | 이용약관 | 개인정보취급방침 | 책임한계와 법적고지 | 불편사항 신고하기 | 사이트맵
ㅇ 서울 : 서울특별시 강남구 노현로79길 66, 402호(역삼동,청송빌딩)  ㅇ 부산 : 부산광역시 해운대구 우동 1470 에이스하이테크21 914호
ㅇ 대표 : 1544-8128 ㅇ부산직통 : 051-744-0077 ㅇ서울직통 : 02-856-0055 ㅇ FAX : 02-6280-2663
ㅇ 사업자번호 : 128-86-68239 ㅇ 통신판매업 신고번호 : 2013-부산금정-0035호 ㅇ 개인정보책임자 : 이재석
ㅇ 상호명 : (주) 수퍼유저 ㅇ 대표자 : 박성수
Copyright ⓒ (주)수퍼유저. All rights reserved.

 아 이 디
 비밀번호
회원 가입 | 비밀번호 찾기

블로그~
 
▷ 질문과 답변
리눅스
서버해킹/보안
네트워크
아파치
메일서버
DNS
PHP
JSP
MySQL
큐브리드
Oracle
MRTG
SMS
Weblog
Domain
S/W
하드웨어
책제목
리눅스서버관리실무바이블v3.0


저자 박성수
페이지수 2,032 pages
펴낸곳(주)수퍼유저

리눅스 서버 구축 및 관리에 필요한 거의 모든 부분과 전반적인 실무 기법들을 다루고 있음
책제목
리눅스보안관리실무(2/E)


저자홍석범
페이지수 820 pages
펴낸곳(주)수퍼유저

리눅스 보안에 관련된 내용을 종합적으로 쓴 책. 저자의 명성 그대로 보안관련의 모든 내용이 그대로 담겨져 있다.