BLOG main image
Their Finest Hour! Since1999..

카테고리

분류 전체보기 (934)
My Page (47)
Linux/Unix (604)
Windows (219)
Database (61)
Programming (1)
Network (0)
ScreenShot (1)
Tip (1)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

이 글은 암호없이 scp를 사용하는 방법을 설명한다.

리눅스 시스템 관리자는 자주 컴퓨터간에 파일을 복사하거나 파일을 여러 컴퓨터로 전송한다.
ftp를 사용해도 되지만, scp를 사용하면 많은 이점이 있다.
ftp는 LAN/WAN에 내용(심지어 암호도)을 그대로 전송하지만, scp는 암호화하여 전송하기때문에 ftp보다 안전하다.

scp의 장점은 쉽게 스크립트에서 사용할 수 있는 점이다. 파일을 리눅스 컴퓨터 100대로 복사한다고 가정한다.
직접 100번 복사 명령어를 실행하는 것보다 스크립트를 작성하고 싶을 것이다.
스크립트에서 ftp를 사용하면 로그인할때마다 암호를 물어보기때문에 힘들다
(역주; netrc 파일을 사용하여 암호를 자동으로 입력하게 만들 수 있지만 보안상 위험하다).
대신 scp를 사용하는 경우 원격 리눅스 컴퓨터가 암호를 물어보지 않도록 설정할 수 있다.
믿거나 말거나 이 방법은 ftp보다 훨씬 더 안전하다!

scp의 기본 문법은 다음과 같다.
현재 컴퓨터에 있는 'abc.tgz' 파일을 'bozo'라는 원격컴퓨터의 /tmp 디렉토리로 복사하려면:

scp abc.tgz root@bozo:/tmp

그러나 이 경우 bozo의 root 암호를 물어본다.
암호를 물어본다면 스크립트에서 쉽게 사용할 수 없다.
해결책은 다음과 같다 (한번만 해주면 "암호없이" 무제한 scp로 복사할 수 있다):

1. 나중에 scp를 사용하여 파일을 복사할 사용자를 결정한다.
물론 root가 가장 강력하고, 난 개인적으로 root를 사용한다.
여기서 root를 사용할때 발생할 수 있는 보안상 문제점을 강의할 생각은 없다.
내가 지금 무슨 말을 하는지 모르겠다면 root가 아닌 일반 사용자를 사용하라.
결정했다면 이제 그 사용자로 로그인하여 다음 단계를 진행한다.


2. 컴퓨터에 공개키(public key)와 비밀키(private key)를 만든다.
이게 뭔가? 공개키 암호화 방식을 모른다면 15초간 설명하겠다.
공개키 암호화 방식은 수학적으로 연관된 공개키와 비밀키를 만든다.
그런 다음 공개키는 누구에게라도 줄 수 있지만, 비밀키는 아무에게도 알려주면 안된다.
키들의 수학적 구성상 신기하게도 누구나 공개키를 가지고 내용을 암호화할 수 있지만,
비밀키를 가진 당신만이 암호화한 결과를 해독할 수 있다. 어쨋든 두 키를 만드는 명령은:

ssh-keygen -t rsa


3. 다음과 같이 출력한다:
"Generating public/private rsa key pair"
"Enter file in which to save the key ... "
그냥 enter를 누른다.

4. 그러면 다음과 같이 출력한다:
"Enter passphrase (empty for no passphrase):"
passphrase를 사용하지 않기때문에 enter를 두번 누른다.


5. 그러면 마지막으로:
"Your identification has been saved in ... "
"Your public key has been saved in ... "
방금 만든 공개키 파일명과 위치를 기억하라 (항상 파일명이 .pub로 끝난다).

6. 공개키를 파일을 복사할 모든 원격 리눅스 컴퓨터에 복사한다.
scp나 ftp를 사용하여 복사한다. root를 선택했다면 (다시 단계 1의 경고를 주의하라),
키는 /root/.ssh/authorized_keys (철자 조심!)에 있어야 한다. root가 아니고 예를 들어 clyde로 로그인한다면,
/home/clyde/.ssh/authorized_keys 에 있어야 한다. authorized_keys 파일이 다른 컴퓨터의 키를 저장하고 있을 수 있기때문에,
파일에 이미 내용이 있다면 (새파일을 덮어쓰지않고) 공개키 파일 내용을 뒤에 추가해야 한다.

이제 끝이다. 별다른 문제가 없다면 파일을 암호없이 원격컴퓨터로 scp할 수 있다. 다시 한번 테스트해보자.
컴퓨터에 있는 'xyz.tgz' 파일을 'bozo'라는 원격컴퓨터의 /tmp 디렉토리로 복사한다

scp xyz.tgz root@bozo:/tmp

와 !!! 암호를 물어보지 않고 복사가 된다!!

일단 암호 하나로 컴퓨터에 로그인하면 모든 원격컴퓨터에 접근할 수 있기때문에 보안에 대해서 주의하라.
그래서 암호를 더 잘 보호해야 한다.

이제 즐길 차례다.
컴퓨터에 있는 'houdini'란 파일을 10개 도시에 흩어져있는 원격컴퓨터의 /tmp 디렉토리로 복사하는 짧은 스크립트를 (5분 안에)
작성해보자. 물론 원격컴퓨터가 100대거나 1000대라도 마찬가지다.
원격컴퓨터들의 이름은: brooklyn, oshkosh, paris, bejing, winslow, rio, gnome, miami, minsk, tokyo.
스크립트는 다음과 같다:

#!/bin/sh
for CITY in brooklyn oshkosh paris bejing winslow rio gnome miami minsk tokyo
do
scp houdini root@$CITY:/tmp
echo $CITY " is copied"
done

신기한 마술같다.
스크립트에서 echo 줄은 현재 진행상황을 알려준다.

혹시 쉘스크립트가 생소하다면 좋은 투토리얼이 있다:
http://www.freeos.com/guides/lsst/.

알다시피 scp는 더 강력한 ssh의 일부이다.
위의 6 단계를 마쳤다면 원격컴퓨터에서 명령어를 실행할 수 있다
(물론 암호없이!). 예를 들어, brooklyn 이라는 원격컴퓨터의 시간을 보려면:

ssh brooklyn "date"

이제 두 개념을 합쳐서 진짜로 멋진 스크립트를 만들어보자. 모든 원격 리눅스 컴퓨터를 백업하기란 쉬운 일이 아니다. 아래 스크립트는 각 컴퓨터의 /home 디렉토리를 백업한다. 상용 백업 소프트웨어와 비교하면 기능은 매우 기본적이지만, 가격면에서는 따라올 수 없다. 대부분의 상용 백업 소프트웨어는 백업할 컴퓨터 대수대로 가격을 매긴다. 이런 패키지를 사용한다면 원격컴퓨터 100대에 대한 비용을 지불하는 대신 원격컴퓨터를 한 컴퓨터로 백업하는 스크립트를 사용한라. 그리고 그 컴퓨터에서만 상용 패키지를 사용하면 99대분 가격을 절약할 수 있다 ! 어쨌던 스크립트를 참고하여 자신의 상황에 알맞는 스크립트를 작성할 수 있다. 이 스크립트를 cron 작업에 걸어둔다 (원격컴퓨터에는 필요없다). 주석을 보면 자세한 내용을 알 수 있다:

#!/bin/sh

# 변수는 구별하기위해 대문자로 지었다

# 스크립트를 실행하기 전에 원격컴퓨터마다 '/tmp/backups'라는 디렉토리를
# 만들고, 컴퓨터에는 '/usr/backups'라는 디렉토리를 만들어야 한다


# 컴퓨터에서,
# date 명령어 결과를 보기 좋게 만들어서 "DATE" 변수를 설정한다
#
DATE=$(date +%b%d)

# 'for 반복문'은 세가지 작업을 한다

for CITY in brooklyn oshkosh paris bejing winslow rio gnome miami minsk tokyo
do

# 1) 원격컴퓨터의 하드디스크가 꽉차지 않도록 저번에 실행한 스크립트가 만든 tarball을 삭제하고
# 확인을 위해 echo한다
#
ssh -1 $CITY "rm -f /tmp/backups/*.tgz"
echo $CITY " old tarball removed"

# 2) 원격컴퓨터마다 /home 디렉토리를 tarball로 만들어서 /tmp/backups에 저장한다
# tarball 파일명은 구별하기위해 도시명과 시간으로 짓는다
#
ssh $CITY "tar -zcvpf /tmp/backups/$CITY.$DATE.tgz /home/"
echo $CITY " is tarred"

# 3) 원격컴퓨터에 있는 tarball을 /usr/backups 디렉토리로 복사해온다
#
scp root@$CITY:/tmp/backups/$CITY.$DATE.tgz /usr/backups
echo $CITY " is copied"

done


# 나머지 부분은 오류검사용으로 없어도 된다:

# 파일명에 날짜를 포함한 오류파일을 만든다.
# 백업이 안된 컴퓨터가 있다면 이 파일에 기록한다
#
touch /u01/backup/scp_error_$DATE

for CITY in brooklyn oshkosh paris bejing winslow rio gnome miami minsk tokyo

do

# tarball이 복사되었는지 검사한다. 없다면 오류파일에 기록한다
# '||'은 앞에 있는 부분이 참이 아닐때만 뒤에 있는 부분을 실행한다는 뜻이다
#
ls /u01/backup/$CITY.$DATE.tgz || echo " $CITY did not copy" >> scp_error_$DATE


# tarball을 정상적으로 열 수 있는지 검사한다. 문제가 있다면 오류파일에 기록한다.
tar ztvf /u01/backup/$CITY.$DATE.tgz || echo "tarball of $CITY is No Good" >> scp_error_$DATE

done

출처 : linux gazette
Posted by 채종윤
rsync란 서로 다른 두 컴퓨터에 들어 있는 정보를 서로 동기화 시킬때 사용한다.
동일한 소스가 두군데 존재하고 한쪽을 편집했을때, 다른 한쪽에 편집한 부분을 업데이트 시켜줘야한다.
이때 모든 소스를 옮기게 되면 시간적으로 많은 낭비가 있기 때문에 rsync는 수정된 부분만 비교해서 옮겨 주게 된다.
그리고 anonymous 서버로도 설정할 수 있는등 많은 유용한 기능들이 들어있다.

rsh이나 ssh을 이용하여 전송하기
이것은 원격지의 호스트에 계정이 있고 rsync의 서버 데몬이 설정되어 있지 않을 경우 사용한다.
간단히 로컬에서도 cp 대신 사용할 수도 있다. ssh를 이용하면 안전하게 복사할 수 있다.
아래의 방법대로 하면 간단히 원격지로 복사할 수 있다.

shell> rsync -arvu -e ssh /from/directory/ to.hostname.com:/to/direcotry

여기서 디렉토리를 써 줄경우 마지막 부분의 /가 중요한 의미를 가진다.
마직막에 /가 있을 경우는 그 디렉토리 내의 모든 파일을 의미하고 /가 없을 경우는 그 디렉토리 자체를 말하는 것이다.
-arvu는 아래 부분을 참조하기 바란다.

원격지 서버 설정하기
먼저 리눅스 최신본을 설치하면 기본적으로 rsync가 설치된다. 그러나 xinetd를 이용하여 서버로 설정은 되어 있지 않기 때문에 서버로 사용할 수 있도록 설정을 해 주어야 한다.

xinetd.d에 rsync파일 추가하기
/etc/xinetd.d디렉토리에 rsync라는 파일을 만들고, 아래와 같은 내용을 입력한뒤, 저장한다.

service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

/etc/services파일에도 아래와 갈은 내용이 없으면 추가해 주도록 한다.

rsync 873/tcp # rsync
rsync 873/udp # rsync

그리고 /etc/rc.d/init.d/디렉토리에서 xinetd를 restart 시켜준다.

shell> /etc/rc.d/init.d/xinetd restart

rsyncd.conf 파일 생성
/etc디렉토리에 rsync.conf라는 파일을 생성한다.

#motd = /etc/rsync.motd # file : message of the day
uid = nobody
gid = nobody
use chroot = no
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid

[www.wangsy]
path = /somewhere/in/remote/host
comment = www.wangsy.com homepage
read only = false
uid = apache
gid = apache
auth users = wangsy
secrets file = /etc/rsyncd.secrets

위 파일과 함께 /etc디렉토리에 rsyncd.secrets파일도 함께 생성한다.

name:password

그리고 /etc/rsyncd.secrets파일의 permission을 rw-------로 해주는 것을 잊지 말도록 한다.

client에서 접근하기
서버 내용 내려받기
다음 명령을 통해서 서버의 내용을 다운 받을 수 있다.

shell> rsync -avz home.inzoo.co.kr::www.wangsy target_dir/

그리고 아래 명령을 통해서 로컬에서 수정된 파일을 서버에 반영할 수 있다.

shell> rsync -avz target_dir/ home.inzoo.co.kr::www.wangsy

위에서 -avz의 의미는 각각 다음과 같다. 자세한 사항은 rsync 홈페이지의 메뉴얼에서 확인할 수 있다.

-a, --archive archive mode
-v, --verbose increase verbosity
-z, --compress compress file data
-u, --update update only (don't overwrite newer files)

약간의 문제
client의 ip와 hostname이 lookup되지 않으면 remote호스트에서 접근을 허용하지 않는 문제가 있다. 이는 ADSL로 접속할 경우 연결이 되지 않게 되는 문제가 발생한다. 서버로 바로 접속하는 것 보다는 위 처음 방식인 ssh를 통한 접속 방법이 좀더 보안상 안전하기 때문에 이방법을 이용하는것이 좋을듯 하다.

관련 사이트
rsync 공식 홈페이지
linux.co.kr내 테마 리눅스-rsync 강좌
Posted by 채종윤
### 솔라리스 - 오라클 8.1.6 설치하기 ###


Intel 이나 Sparc이나 설치에는 아무이상이 없습니다.

* 오라클 설치환경

- OS : 솔라리스 2.8 SPARC 버전
- RDBMS : 오라클 8.1.6 Enterprise
- System : Netra T1
- HDD : 18GB(최소운영용량 3GB)

* 환경설정 ( %,$ : 일반유저 Prompt, # : Root유저 Prompt )

설치환경의 오라클유저에게 설정해야 할 사항
- 관리자툴을 이용하여 사용자(oracle)와 그룹(dba)를 등록한다.
등록된 유저의 기본쉘은 csh로 설정한다.
# admintool
- 오라클 유저의 홈을 만들어서 셀환경을 설정하여 준다.
% mkdir -P /oracle/product/8.1.6
% vi .cshrc
.cshrc안의 내용에는 뒤쪽 참고 1의 내용 그대로를 입력하여 저장하면 된다.
- Root 유저를 이용하여 /oracle 디렉토리의 소유권을 변경한다.
# chown -R oracle:dba /oracle
- /etc/system 의 내용을 참고 4와 동일하게 변경한다.
- 이제까지 변경한 내용이 적용될 수 있도록 시스템을 Reboot한다.
- Reboot된 시스템의 환경을 확인하여 /etc/system의 설정이 적용되었는지 확인한다.
# sysdef
- Root유저를 이용하여 그래픽 모드를 변경하여 준다.
# xhost + cdm-svr(ip)
- oracle유저를 이용하여 화면모드를 설정한다.(cdm-svr은 hostname)
% setenv DISPLAY cdm-svr:0.0
- oracle유저를 이용하여 /cdrom/cdrom0에 있는 오라클을 실행한다
% ./runInstaller


* Oracle Universal Installer
작업의 진행상황은 각 안내문의 타이틀앞의 두개의 원을 확인하면 알 수 있다.
작업의 진행율에 따라 계기일식의 모양이 일어나기 때문에 완료가 되면 두개의 원이
완전히 겹치게 된다.

1. Welcome
오라클의 runInstaller를 실행하면 환영인사말이 나온다.
Next를 선택한다.

2. File Locations
Source는 products파일이 위치한 Full Path이다. 기본으로 설정되어 있으니 그대로 적용하면
된다. Destination은 서버측의 오라클 홈디렉토리의 Full Path를 적용한다.
설치자가 임의대로 사용하고자 하는 위치를 설정해 주면 된다.

예)/oracle/product/8.1.6
Next를 선택한다.

3. UNIX Group Name
유닉스 그룹명을 지정하는 부분이다.이전에 DB그룹명으로 등록된 이름을 적용하면 된다.

예) dba
Next를 선택한다.

4. orainstRoot.sh 실행하기
/tmp/OraInstall/orainstRoot.sh의 스크립트를 실행한다.
이때 root 유저를 사용하여 다른 터미널창에서 실행하기 바란다.

예) ./tmp/OraInstall/orainstRoot.sh
실행후 Retry를 선택한다.

5. Availcable Products
- Oracle8i 8.1.6.0.0
오라클 8.1.6 DB 서버설치
- Oracle8i Client 8.1.6.0.0
오라클 8.1.6 DB 클라이언트 설치
- Oracle8i Management Infrastructure 8.1.6.0.0
오라클 8.1.6 기본 클라이언트와 서버관리툴 설치
Oracle8i 8.1.6.0.0을 클릭한 후 Next를 선택한다.

6. Installation Types
인스톨 유형을 선택하는 부분이다.
- Typical(966MB)
가장 일반적인 인스톨 형태로 필요한 모든 툴을 설치한다.
- Minimal(798MB)
최소한의 기본적인 툴만을 인스톨한다.
- Custom
사용자가 직접 필요한 툴을 선택하여 인스톨을 결정한다.
우리는 여기서 Custom을 선택한다.
이유는 DB에서 한글을 사용하기 위해서이다. 위의 Typical과 minimal은 컴퓨터가 기본으로
선택되어 있는 양식을 그대로 설치하기 때문에 언어선택부분이 기본 영문으로 설정되어 있기
때문에 닥스오픈에서 한글내용을 검색하면 ????로 출력이 된다.
Custom을 선택하여 Korean을 추가선택 할 것이다.
Custom을 클릭한 후 Next를 선택한다.

7. Available Product Components
Oracle8i의 패키지를 추가하거나 제외시킬 수가 있다.
여기서 우리는 먼저 Product Languages..을 선택하여 Language Selection의 작업창에서 Available Languages에서 Korean을 찾아서 더블클릭을 하면 Selected Language부분에 추가가
될 것이다. OK를 선택한다.
그리고 나서 오라클 패키지에 대한 설치를 추가할 것과 제외할 것을 선정하여 선택한 다음
Next를 선택한다. 추가/제외를 모를경우 Next를 선택해도 무방하다.

8. Component Location
선택할 수 있는 Component인 Java Runtime Environment 1.1.8.10을 선택하여 설치할 수 있다.
그러나 그냥 Next를 선택한다.

9. Privileged Operating System Groups
데이터베이스의 관리자 그룹명과 운영그룹을 설정하는 부분이다.
이전작업에서 우리는 dba를 선택한적이 있다.
이곳에서도 역시 두 곳 모두 dba를 입력하여 준다.

10. Create Database
데이터베이스 생성에 대한 질문이다.
Yes를 클릭한 후 Next를 선택한다.

11. Database Identification
Global Database Name과 SID를 입력하는 부분이다.
작업환경에 맞게 입력하길 바란다. 본 문서에서는 ORA8로 입력하였다.
입력후 Next를 선택한다.

12. Database File Location
Directory for Database Files의 저장위치를 설정한다.
여기에서는 /oracle/data로 설정하였다.
입력후 Next를 선택한다.

13. Summary
이제까지 수행한 작업에 대한 확인절차이다.
꼭 필히 확인해야할 부분은 Product Language를 확인하여 English와 Korean이 있는지 확인을
하기 바란다.
확인이 끝났다면 Install을 선택한다.

14. Install
이제부터 선택된 패키지와 설정된 내용으로 설치가 시작된다.

15. Setup Privileges
Step8에서 /oracle/product/8.1.6/root.sh을 root 유저가 실행한다.
실행한 다음질문에 Yes 또는 default로 설정된 내용은 엔터를 입력하면서 수행한다.
완료가 되었다면 실행명령형 대화상자의 OK를 선택한다.

16. Net8 Configuration Assistant
Perform typical configuration을 클릭한 후 Next를 선택한다.

17. Oracle Database Configuration Assistant
데이터베이스에 사용될 응용프로그램의 주요 유형 선택이다.
- OLTP(온라인 트랜잭션 프로세싱)
- 데이터 웨어하우징
- 다목적
여기서 우리는 다목적을 클릭하고 다음을 선택한다.

18. 동시 접속 사용자
동시에 접속할 수 있는 사용자(Process)의 대략적인 수를 입력한다.
입력후 다음을 선택한다.

19. 데이터베이스가 기본으로 실행될 모드
- 전용서버모드(dedicate)
- 공유서버모드
전용서버모드를 클릭한 후 다음을 선택한다.

20. 데이터베이스용으로 구성할 옵션
SQL Plus Help를 선택하여 도움말을 설치한다. 다음을 선택한다.

21. 데이터베이스 정보변경
검토후 적절한 정보로 변경한다.
꼭 문자집합변경(charecterset)은 KO16KSC5601로 문자집합과 국가별 문자집합이
변경되었는지 확인하여야 한다.
초기화 파일명을 변경하고자 하면 관리가 가능한 적절한 디렉토리명으로 변경한다.
변경이 완료되었다면 다음을 선택한다.

22. 제어파일 매개변수 변경
제어파일에 대한 변경이다.
관리가 용이한 적절한 디렉토리명과 기타사항을 변경/수정한 후 다음을 선택한다.
그대로 진행하여도 무관하지만 디렉토리명이 길어지면 관리하기에 불편하다.

23. 시스템/도구/사용자/롤백/인덱스/임시
시스템 Size 200
도구 Size 8
사용자 Size 8
롤백 Size 256 Minimum 256 Initial 256 Net 256
인덱스 Size 54
임시 Size 128
정보를 확인후 적절하게 변경한다.
변경이 완료되었다면 다음을 선택한다.

24. Redo 로그 파일 매개변수
리두 로그파일 매개변수정보 변경사항이다.
변경후 다음을 선택한다.

25. 로그 매개변수
정보를 검토후 적절하게 변경한다. 아카이브로그사용은 사용하지 않는다.
변경후 다음을 선택한다.

26. SGA 매개변수
정보를 검토후 적절하게 변경한다. 변경후 다음을 선택한다.

27. 추적 파일 디렉토리
추적파일디렉토리에 대한 경로를 검토후 적절히 변경한다.
변경후 다음을 선택한다.

28. 데이터베이스 생성
- 지금 데이터베이스 생성
- 쉘 스크립트에 정보 저장
지금 데이터베이스생성을 클릭후 완료를 선택한다.

29. 데이터베이스 생성 작업 진행
다음의 작업이 순서대로 진행된다.
- Oracle 인스턴스 생성과 시작
- 데이터베이스 파일 생성
- 데이터 딕셔너리 뷰 생성
- PL/SQL 지원 추가
- 데이터베이스 생성 완료

30. End of Installation
오라클 8i의 설치가 완료되었습니다.
Exit를 선택하여 설치화면을 빠져 나오면 설치작업은 종료가 된다.


--- 참고사항 ----

* 솔라리스 Hostname IP 변경후 오라클 재설정
$Oracle_Home/network/admin/Listener.ora 파일내용에 HostName를 변경하면 된다.
$Oracle_Home : .cshrc에 설정된 오라클 홈디렉토리를 말한다.

* 오라클 DataBase 올리기
오라클 유저를 이용하여 작업을 수행한다.
% svrmgrl 오라클 서버매니저 실행
svrmgrl> connect internal 일반적인 접속방법(권장)
connect system/manager system 관리자로 접속하는 방법
connect scott/tiger scott 일반유저로 접속하는 방법(아이디/비밀번호)
svrmgrl> startup 오라클 Database 시작
svrmgrl> exit 오라클 서버매니저 나오기
% lsnrctl start 리스너 시작하기(오라클 연결 데몬)

* 오라클 DataBase 내리기
svrmgrl> connect internal
svrmgrl> shutdown 모든 시스템 사항을 무시하고 Database가 내려짐
shutdown immediate Process가 모두 내려진 다음에 Database가 내려짐
(권장)
shutdown abort Process는 남겨두고 Database가 내려짐
ctrl + D 모든 시스템 사항을 무시하고 Database가 내려짐
svrmgrl> exit 오라클 서버매니저 나오기
% lsnrctl stop 리스너 종료하기(오라클 연결 데몬)



참고 1. $ORACLE_HOME/.cshrc

#@(#)cshrc 1.11 89/11/29 SMI
umask 022
set path=(/bin /usr/oracle/product/8.1.6/bin /usr/bin /usr/ucb /usr/css/bin /opt/SUNWspro/bin /etc .)

setenv TERM vt100
setenv ORACLE_TERM vt100
setenv ORACLE_HOME /usr/oracle/product/8.1.6
setenv ORACLE_SID TTT
setenv ORACLE_OWNER oracle
setenv LANG ko
setenv NLS_LANG KOREAN_KOREA.KO16KSC5601
setenv EDITOR vi
setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/opt/SUNWspro/lib:/usr/lib:/opt/SUNWspro/SC5.0/lib:/usr/ccs/lib
set path=(/sbin /usr/bin /openwin/bin /opt/SUNWspro/SC5.0/bin $ORACLE_HOME/bin /usr/ccs/bin .)


* 변경된 쉘 정보 반영하기
# source .cshrc
# env 현재 적용된 환경정보 확인

참고 2. /etc/passwd

oracle:x:1001:11::/oracle/product/8.1.6:/bin/csh

참고 3. /etc/group

root::0:root,oracle
dba::11:root,adm,daemon,oracle

참고 4. /etc/system

forceload:sys/shmsys
forceload:sys/semsys
forceload:sys/msgsys

// 오라클 Shared memory 설정
set shmsys:shminfo_shmmax=251658240
set shmsys:shminfo_shmmin=50
set shmsys:shminfo_shmmni=256
set shmsys:shminfo_shmseg=256

// 오라클 세마포어 설정
set semsys:seminfo_semume=128
set semsys:seminfo_semmap=128
set semsys:seminfo_semopm=64
set semsys:seminfo_semmni=2048
set semsys:seminfo_semmni=2048
set semsys:seminfo_semmns=2048
set semsys:seminfo_semmnu=2048
set semsys:seminfo_semmsl=400 // 세마포어 실수량(Process 수)

// for/background 작업용 프로토콜 Msg 매개변수 설정 (IPC)
set msgsys:msginfo_msgmap=512
set msgsys:msginfo_msgmax=8192
set msgsys:msginfo_msgmnb=65536
set msgsys:msginfo_msgmni=256
set msgsys:msginfo_msgssz=8
set msgsys:msginfo_msgtql=512
set msgsys:msginfo_msgseg=8192

set maxusers=1000 // 최대유저수 정의
set max_nprocs=10000 // ps -ef 명령시 프로세스 출력수
set rlim_fd_max=1500 // 한 개의 프로세스가 관장하는 파일수
set rlim_fd_cur=128
set pt_cnt = 128 // /dev/ptXXXXX 가상터미널 수(Telnet)

감사합니다.
Posted by 채종윤

Total : Today : Yesterday :
채종윤's Blog is powered by Daum & Tattertools.com / Designed by tistory.com