IT한 것/unix 21

어느날 갑자기 ssh_exchange_identification

아마 어이가 없는 상황일 것이다. 해당 ssh 서버를 잘 쓰고 있었고, 잘 쓰는 사람도 있을 것이다. 근데 왜 접속이 안돼는가? telnet이나 콘솔로 해당 서버에 접근해서 sshd 등으로 접속한 세션 수를 세어보면, 비정상적으로 많은 것을 확인 할 수 있다. sshd_config에서 이 갯수를 늘려줄 수 있는지 확인은 안해봤지만, 나 같은 경우에는 사용하지 않는 종료된 세션이 남아 있는 것을 확인하고, 해당 접속 세션을 강제로 제거하여 문제를 해결하였다. http://www.raditha.com/blog/archives/000604.html

IT한 것/unix 2009.06.12

HP-UX Dynamic Path Search Behavior

64-bit Mode Run Time Differences 64비트 모드로 컴파일되고 링크된 프로그램은 다른 SVR4 시스템과 유사한 실행시간 동적 적재모델을 사용한다. 64비트 모드에서 프로그램 시작시 ㅂㄴㅕ경되는 두개의 중요한 영역이 있다. Applications compiled and linked in 64-bit mode use a run-time dynamic loading model similar to other SVR4 systems. There are two main areas where program startup changes in 64-bit mode: . 공유된 라이브러리용 동적 경로 탐색 . 독립된 라이브러리의 기호 탐색 • Dynamic path searching for shar..

IT한 것/unix 2009.02.02

HP-UX Magic Number

원문: http://hpc.uky.edu/Docs/Prog/performance/chatr.html Magic Numbers 32비트 모드에서 링커는 프로그램이 어떻게 메모리에 적재되어야할지 결정할 수 있도록 각 실행 프로그로그램에 magic_number를 기록한다. 실행가능 파일의 magic number는 세 종류가 올 수 있다. In 32-bit mode, the linker records a magic number with each executable program that determines how the program should be loaded. There are three possible values for an executable file's magic number:Title not av..

IT한 것/unix 2009.02.02

HP-UX에서 shared library를 못 찾는 경우

흔하디 흔한 LD_LIBRARY_PATH 또는 SHLIB_PATH에 안잡힌 경우.실행 파일이 32bit로 작동하는데 라이브러리가 64bit에 잡힌 경우. (또는 이 반대의 경우)java vm이 32비트 모드인데 라이브러리가 64bit인 경우. (vm에 따라 -d32 -d64로 설정할 수 있다.)희한하게도 hp의 java vm은 .sl이 아닌 .so파일을 찾는다. 때문에 .sl파일을 찾으려다 실패하는 경우가 종종있었고, 이때마다 해당 .sl 을 .so로 symbolic link로 걸어 해결했다.SHLIB_PATH search가 disable인 경우chart 명령으로 해당 바이너리의 dynamic library 탐색 방법을 보면 위의 값이 disable인 경우가 있다. 이때는 chart명령으로 바꿀 수는 있..

IT한 것/unix 2009.02.02

Position Independent Code

원문: (어디인지 찾는 중..) 동적 실행파일 내에 위치한 코드는 보통 PIC이고, 메모리상에 고정된 주소에 연결되어 있다. 반면에 공유 객체들(Shared Objects)는 다른 프로세스들과 다른 메모리 주소들에 놓여(be loaded)질 수 있다. PIC는 명확한 주소에 묶여 있지 않다. 이 독립성은 이 코드가 이 코드를 사용하는 각 프로세스의 다른 주소에서 효율적으로 실행할 수 있게 해준다. 컴파일러는 -K pic 옵션을 주어 PIC를 생성할 수 있다. 만일 공유객체가 PIC로 만들어졌다면, 텍스트 세그먼트는 실행시(runtime)에 부분적인 변경을 요구 할 수 있다. 이 변경은 재배치 가능한 참조들(reallocatable references)을 그 객체가 놓여(loaded)질 위치에 설정할 수 ..

IT한 것/unix 2009.01.23

HP-UX 32bit 모듈의 pstat_getproc 가 실패할때.

프로세스의 정보를 알아내기 위해서 pstat_getproc 를 이용하기로 하였다. 마침 원하는 정보가 있었기에 아무 부담없이 사용하며 잘 작동하였다. 처음에는 64비트로 테스트를 했었는데, 문득 32비트가 궁금해서 테스트를 시도했더니. ERRNO 72 EOVERFLOW와 함께 실패했다. 사유를 알아본 즉. 32비트 모듈이 32비트 프로세스의 정보를 pst_status(pstat_getproc에 넘겨줄 정보를 넣을 구조체)에 입력하는데에 아무 지장이 없겠지만. HP-UX머신에는 32/64 바이너리가 혼재하여 있으므로 64비트 프로세스의 정보를 32비트 구조체에 정보를 입력하는데에 문제가 발생한다고 한다. 이번에도 컴파일 플래그로 해결이 되었다. 그리고 그 값은 _PSTAT64 이다. 예를 들면 cc -D_..

IT한 것/unix 2008.05.08

Solaris 8에서 하드디스크 추가하기(SCSI)

내가 담당하고 있는 서버에 하드디스크 공간이 부족하다. 물론 필요없는 내용을 날려버리거나 백업하면 되지만, 날리는 것은 당연히 문제가 있고, 백업하기에는 좀 찝찝하다. 그래서 하드디스크를 추가하기로 하였다. format -> format -> label -> partition -> label 이런 순으로 커맨드를 입력하여 포맷까지는 완료하였으나 파티셔닝과 마운트를 도저히 할 수가 없었다. 결국 검색 끝에 여기 에서 설명한 것을 그대로 따라하여 성공하였다. 내가 부족했던 것은. newfs로 파일 시스템을 생성후에 마운트의 디바이스를 하드웨어로 설정한 것이다. 즉 /dev/rdsk/c#t#d#s# 으로 설정하여 파티션을 못찾았고 /dev/dsk/c#t#d#s#으로 설정하자 올바르게 마운트 되었다.

IT한 것/unix 2007.04.04

AIX에서 Informix esql 로 빌드할때에 생기는 문제

왠만한 환경이 아니고서야 DB를 Thread safe 모드로 빌드해야한다. Precompile 후에 모듈을 링킹하는 과정에서 cc를 사용했는데, 별 문제가 없었으나, 무슨 탓인지 AIX에서는 기가막힌 문제가 발생했다. 기존의 Makefile 로 빌드하면 loc_t 라는 구조체가 INFORMIX 헤더에도 있고 SYSTEM 헤더에도 있어서 충돌하는 문제가 발생한다. 이에 대한 해결책은 아래처럼 _H_LOCALEDEF 값을 선언해주면 된다. gcc -D_H_LOCALEDEF (원래옵션들) 그런다고 문제가 바로 해결되지는 않았다. 빌드과정에서는 모든 문제가 사라졌지만, 막상 모듈을 돌리려고 하면, t_connect 등의 t_로 시작하는 함수들이 참조는 되었으나 실 모듈에서는 찾을 수 없다는 어머어마한 오류가 뜬..

IT한 것/unix 2007.03.23

솔라리스 콘솔 케이블

솔라리스 콘솔 케이블이 필요하다. 물론 제작하면 좋겠지만, 어디서 살 대 없을까. 서버는 Fujitsu PrimePower 450이다. cisco 라우터의 랜콘솔을 연결해보니 잘 작동했다. 그 콘솔의 제품번호?는 72-3383-01 다. 설명을 보니까 "Cisco Compatible Console Cable DB9 to RJ45 Lt Blue" 아무튼 콘솔 케이블이란다. 또다른 어댑터를 이용하여 붙여봤는데, 실패했다. 이 어댑터는 "Cisco 74-0495-01 Eq. RJ45 / DB9F RS-232 Modular Adapter" 잘은 모르지만, 안된다! 우선은 핀 배선이 되어있지 않은 어댑터를 가지고 한번 조합해봐야겠다. 아래에는 제작법을 공개한 듯 하다. 여기

IT한 것/unix 2006.12.14

플랫폼별 패키지 설치하기.

AIX 명령 : smitty install 패키지와 라이센스 파일을 받아야한다. 예제 : java sdk 1.4 32bit Java14.sdk Java14.license 두 파일을 받아 위의 명령을 실행하고 이 파일들이 위치한 경로를 기입하면 설치된다. HP-UX 명령 : swinstall 확장자가 depot인 파일이 패키지 파일이다. 예제 : java sdk 1.5 jdk15_15003_ia.depot swinstall -s . ${PWD}/jdk15_15003_ia.depot 패키지의 경로는 반드시 절대경로. SOLARIS 명령 : pkg-get 원격저장소를 사용하는 패키지 관리 프로그램. 기본으로 설치되는 것은 아니고, http://www.blastwave.org/packages.php 이런 곳에서..

IT한 것/unix 2006.09.08