본문 바로가기
Linux

Unix(AIX) VS Linux

by 개폰지밥 2020. 5. 18.
반응형

[정리] Unix(AIX) VS Linux

 

Unix(AIX)

Linux

압축하기

#.tar.gz로 압축하기

ex)bin 파일 bin.tar.gz로 압축

tar cvf - ./bin | gzip -c > bin.tar.gz

#tar.gz로 압축하기

ex)bin 파일 bin.tar.gz로 압축

tar -zcvf bin.tar.gz bin

압축풀기

#.tar.gz 압축 풀기

ex)bin.tzr.gz라는 tar.gz 파일 압축 풀기

tar -zxvf bin.tar.gz

#.tar.gz 압축 풀기

ex)bin.tzr.gz라는 tar.gz 파일 압축 풀기

gzip -d bin.tar.gz

tar -xvf bin.tar

Profile

#vi 편집기 열기

vi ~/.profile

 

#라이브러리_PATH

LIBPATH

ex) export LIBPATH=/home/oracle/MagicDB/lib:$ORACLE_HOME/lib

 

#profile 적용

. ~/.profile

#vi 편집기 열기

vi ~/.bash_profile

 

#라이브러리_PATH

LD_LIBRARY_PATH

Ex) export LD_LIBRARY_PATH=/home/magicdb/MagicDBPolicy/lib

 

#profile 적용

. ~/.bash_profile

source ~/.bash_profile

원하는 프로그램

시스템 부팅시

자동 시작

# vi /etc/inittab

ex) magicdb:2345:once:/home/oracle/MagicDBPolicy_new/bin/magicdbboot.sh 1>/dev/null 2>&1

에 추가.

리눅스 처럼 계정변경이 /etc/inittab에서 바로 되지 않기 때문에 *.sh를 만들수있다.

 

#magicdbboot.sh 내용

#!/bin/sh

 

export LIBPATH

LIBPATH=/home/oracle/MagicDBPolicy_new/bin

 

su - oracle -c "cd /home/oracle/MagicDBPolicy_new/bin; start.sh"

이부분이 이해 안되면 아래 참고

# vi /etc/rc.local

ex) su -l oracle -c "cd /home/oracle/MagicDBPolicy_new/bin;./start.sh"

에 추가.

 

 

참고1) AIX 파일을 열면 가끔 끝에 ^M이 있는 경우가 있다.

이것을 한번에 제거 하는 방법은 아래와 같다.

:%s/^M//g

^M ^+M이 아니고 Ctrl + v + m이다.

 

참고2) AIX 파일과 Linux 파일은 다른 경우가 많다.

AIX서버에 Linux 파일을 넣는 경우

Excute permission denied(실행 권한을 줬는데도)File is not an executable XCOFF file 에러가 발생하면

알맞은 AIX 파일로 변경해야 한다.

또한 AIX 파일의 경우 32bit인지 64bit인지가 중요하므로 file이라는 명령어를 이용해서 이 파일이 32bit인지 64bit인지 확인할 수 있다.

파일이 몇 비트인지 확인하고 싶으면 => file 확인하고싶은_파일명

AIX 서버가 몇 비트인지 확인하고 싶으면 => lslpp -l | grep bos.mp

로 확인할 수 있다.

 

Aix inittab

-       inittab 이란?

우리는 원하는 프로그램을 시스템을 부팅할 때 자동으로 시작하게 하거나 시스템 runlevel을 바꿀 때, maintenance level(single user mode)로 들어가고자 할 때, /etc/inittab 파일이나 init 명령어를 사용합니다. init 명령어는 프로세스들을 시작시키고 control 하는 process dispatcher 이며 이 init 명령어의 script 가 바로 /etc/inittab 파일 입니다.

telinit init 명령어 모두 현재의 runlevel을 바꿀 때 사용할 수 있습니다. 참고로 init 명령어는 시스템에 직접 명령하고 telinit 명령어는 init 명령어에 명령을 합니다. runlevel을 변경하신 후에는 who ?r 명령이나(/etc/utmp 참조 ? Update 속도가 조금 느릴 수 있음) more /etc/.init.state 명령으로 현재의 runlevel을 확인할 수 있습니다.

init 명령은 60초에 한 번씩 /etc/inittab 파일을 읽어서 새로운 내용을 Update 합니다.

 

-       inittab 파일의 구성

inittab 파일 형식: Identifier:Runlevel:Action:명령어  각각은 : 에 의해 구분됩니다.

 

  Identifier

고유하게 식별하는 문자열(하나 이상의 문자)을 쓰면 된다.

Identifier inittab에 정의된 각 항목의 이름을 명시합니다. lsitab으로 /etc/inittab 파일을 검색하실  때 옵션으로 사용됩니다.

 

  Runlevel

{ telinit | init } { 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | Q | q | S | s | M | m | N }

보통 서버 구동환경 runlevel 입력

? Runlevel은 시스템이 수행하는 프로세스들을 분류합니다. init 명령에 의해 수행되는 각각의 프로세스들은 하나 이상의 runlevel을 가질 수 있으며 runlevel 0에서 9까지 숫자로 표현됩니다. 하나의 runlevel init이나 telinit 명령으로 수행하게 되면 현재 실행되고 있는 다른 runlevel의 프로세스들은 warning (SIGTERM)받게 되고 20초 후 KILL Signal(SIGKILL)을 받고 중지됩니다. 특정

runlevel이 입력되지 않은 프로세스들은 모든 runlevel에서 동작합니다.

? 디폴트 runlevel 2이며 이는 init:2:initdefault에 정의되어 있으며 etc/inittab file 이 존재하면 system은 자동으로 initdefault entry를 파일 안에 넣으며 etc/inittab file이 존재하지 않으면 init 명령어가 user에세 콘솔로 runlevel을 입력하도록 요구 합니다.

0-1   다른 Unix Linix와는 다르게 AIX 에서 이 두 runlevel Operating system 이 사용하도록 지정되어 있습니다.

 

#runlevel

# Default runlevel. The runlevels used are:

# 0 – halt (Do NOT set initdefault to this)

# 1 – Single user mode

# 2 – Multiuser, without NFS (The same as 3, if you do not have networking)

# 3 – Full multiuser mode

# 4 – unused

# 5 – X11

# 6 – reboot (Do NOT set initdefault to this)

 

Action

init명령어가 process를 조절하는 방법에 대한 값입니다. 아래와 같은 항목들을 넣을 수 있습니다.

 

respawn

- process를 시작하고 inittab을 계속 scan 하면서 만일 process가 멈추면 다시 시작합니다.

 또한 process가 끝날 때까지 기다리지 않고 다른 process에 대한 동작을 진행합니다.

wait

- process를 시작하고 그 프로세스가 끝날 때까지 기다립니다. 다른 process를 위한 상위 process들이 있을 경우 사용합니다. Inittab entry 순서로 실행 순서를 정할 수 있습니다.

once

- 한번만 실행하며 끝날 때를 기다리지도 않습니다.

boot

- 시스템이 부팅하는 동안만 실행 할 수 있으며 종료는 기다리지 않습니다.

bootwait

- 시스템이 부팅 후 single-user mode에서 multi-user mode 로 넘어갈 때 프로세스를 진행하며 프로세스의 종료를 기다립니다.

powerfail

- power fail signal (SIGPWR)를 받았을 때 만 작동합니다.  종료를 기다리지 않습니다.

powerwait

- powerfail과 같은 기능을 가지며 프로세스 종료후 etx/inittab 파일을 진행합니다.

off

- 만약 action field off 가 적용되어있는데 현재 이 process 가 작동하고 있다면

warning signal을 보내고(SIGTERM), 20초 후에 kill signal로 프로세스를 끝냅니다. (SIGKILL).

참고: https://m.blog.naver.com/PostView.nhn?blogId=woomun&logNo=140205717047&proxyReferer=https:%2F%2Fwww.google.com%2F

 

더 자세한 사항은 man 페이지 참조 man inittab

magicdb:2345:once:/home/oracle/MagicDBPolicy_new/bin/magicdbboot.sh 1>/dev/null 2>&1

여기서 1>/dev/null 2>&1

결론: 조회한 내용과 발생한 에러 모두 표시하지 않겠다는 의미이다.

[자세히]

/dev/null : 유닉스의 블랙홀과 같은 파일이다. 파일을 모든 출력을 흡수한다. (보이지 않는다.)
2> : 에러 메세지가 발생할 경우에는, 에러 출력을,
&1 : 1 표준 출력 파일 디스크립터가 참조하고 있는 곳으로 보낸다.

0 : 표준입력

1 : 표준출력

2 : 표준에러

참고: https://blogger.pe.kr/369

참고: https://reebok.tistory.com/56 [BLOG]

 

Linx 권한

설치한 오라클을 설치한 oracle 계정말고 다른 계정에서 oracle을 실행하고 싶으면?

예를 들어 oracle이라는 계정으로 oracle을 설치했는데 sdw2라는 계정에서 oracle을 실행하고 싶다.

 

-       다른 계정에 오라클 권한주기

에러1) bin 파일 읽혀주기

 

vi ~/.bash_profile

 

에러2) sid 부분 추가해주기

 접속 성공!

반응형

'Linux' 카테고리의 다른 글

실무자가 알려주는 리눅스 마스터 공부 법  (0) 2021.08.01
리눅스 마스터 2급 시험 보는 방법  (0) 2021.01.31
CentOS7 putty Connect Error  (2) 2020.02.11
Shall Script Command - 1  (0) 2019.03.05
Linux Basic Command - 1  (0) 2019.03.05

댓글