블로그 이미지
바람이 바뀌는 곳... 박영창

카테고리

왠 또라이의 세상살.. (1267)
원래 여기가 이런곳.. (584)
아마 좋아하는 듯... (464)
나를 싫어하는 놈들.. (109)
먹고는 살아야지;;; (48)
그땐 그랬지 :-) (29)
걷다보니 여기까지... (23)
Total789,932
Today148
Yesterday212

맥북 쓴지도 이제 반년가까이 되가는데... 시간이 지날수록 윈도우를 더 많이 쓰게되더라는... -_-;

그렇다고 내가 얼리가 아니라던지 적응력이 떨어진다던지 하는건 아닌데...
우분투 나오기 전에도 데탑에 리눅스 깔고 영화보고 TV 보고... 그랬는데 쩝;;;

(해본분은 알겠지만 우분투 전에는 저거 하나하나가 넘사벽이었다.)
리눅스야 태생이 그런줄 알았으니 이것이 나의 길이구나 하면서 갔지만...

지나고 보니 그냥 남들이 많이쓰는게 제일 좋은 것같이 느껴진다.

이번에 부트캠프 3.1이 공개됐길래 올타꾸나 하구서 Windows 7 을 지원한느 이 녀석을 설치하다가 키보드 드라이버 관련해서 뭔가가 엉킨건지 키보드 먹통되고... 어찌어찌하면서 다시 설치하고 여차저차 하면서 다시 설정하는 과정을 격다가 이렇게 글을 적는다.

이제는 감히 말한다. Xcode 가지고 아이팟 어플 개발할거 아님 맥북사지마 -_-
keynote ? 걍 우분투깔고 OpenOffice 에 opengl 플러그인 설치해서 그거써 !!!!
이건 뭐 남들 다 쓰는 윈도우를 리눅스 쓰듯해야하니...

여튼 맥쓰사를 비롯해서 여기저기에서 찾아보면 맥북의 더러운 키보드 배열 (애플은 뭐든지 업계에 통용되는 표준을 무시 :) ) 덕분에 어려움을 격는 사람들이 많이 찾는 Input Remapper / KeyTweak / MKLC 라는 프로그램이 있다.

BUT..... 이 프로그램 만큼 좋은 녀석을 아직 찾지를 못했다.

리매핑 프로그램계의 iptime 같은 녀석이랄까 ??? 한국인 특유의 섬세함이 돋보이는 "이런 기능을 쓸까?" 싶을 정도로 잡스러운 기능과 기능키 동시입력을 지원하는 강력함!!!! 간단한 설정.

거기다가 개발자가 한국인. 메일때리면 당연히 피드백 받을 수 있다. -ㅅ-;;

거기에 무료.

다운로드는 http://www.safefolder.net 여기서...

내가 사용하는 설정파일도 함께 공개해 봄.
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 박영창
 제가 일하는 곳의 서버에는 붉은성(RedCastle)이라는 커널 보안툴을 필수적으로 설치하나 봅니다. 얼마전까지만 해도 이런 보안툴의 문제점에 대해서 아무런 생각이 없었는데, 이 녀석이 일으키는 문제들이 생각보다 큰 것 같습니다.

 db2 에는 db2pd 라는 번들된 모니터링 툴이있습니다. 이 녀석은 db2 프로세스를 뒤져서 메모리상의 정보를 얻어오는 녀석인데요.

qtdev1:[/usr/local/redcastle/logs]more rclog.01
1       33554947        16777986        1262013633      1262013633      kernel  42.8.162.100    Denied setuid to root on db2pd -
d QTDEVDB -locks wait.::setuid(23):18816:18815:root(0):qtdevins(114):MSA:7:System Admins(2):db2pd -d QTDEVDB -locks wait:db2pd -
d QTDEVDB -locks wait:UXR:0:Unknown(0):18816:root(0):root(0):Deny: [LoginUser=qtdevins(114)]
1       33554945        16777986        1262013633      1262013633      kernel  42.8.162.100    Unauthorized process creation by
 qtdevins.::setresuid(126):18815:18783:qtdevins(114):qtdevins(114):MSA:7:System Admins(2):wc -l:db2pd -d QTDEVDB -locks wait:UXR
:0:Unknown(0):18816:root(0):root(0):Deny: [LoginUser=qtdevins(114)]
....
....

 웃기게도 이녀석이 아무래도 db2pd 의 메모리 액세스를 막아버리는 것 같습니다. : ) - 뒷부분의 로그를 보면 더 process creation violation error 등등의 복잡 다양한 에러를 내 뱉습니다. -

 제가 듣기로는 이 녀석이 리눅스의 SELinux / IBM 티볼리 제품군등하고 비슷한 역할을 하는 국산 제품인 것으로 알고있는데.. (아닐지도 모릅니다만) 프로그램 자체의 완성도가 나쁘다라고 생각하기보다는 아무래도 테스트가 부족한 환경에서 개발된 탓인지 이런저런 문제를 일으킬 소지가 아무래도 많은 녀석인 것 같습니다.

 그렇다고 감사라고 나오면 설치했는지 확인하기때문에 설치는 해야하는 것 같고, 설치를 하면 언제 db2가 이 녀석 때문에 내려갈지 모를 불안감을 안고 가야하는...

 정책설정에서 아무래도 예외가 가능하긴 할 것 같은데 - 설마 보안툴인데 예외 처리가 없진 않을테고.. -_- - 단지 설치 운영의 업무가 명확히 구분된 나름 규모가 있는 곳에서는 지금처럼 운영중인 환경상에 저희도 모르는 채로 설치되서 잘되던 프로그램을 안되게 만들어 버리니... 그런게 문제인 것 같습니다.
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 박영창

 '형~ 파일 이름을 출력하고, 파일 첫줄을 찍고 싶은데... 쉘 스크립트로는 어떻게 해요?'

 글쎄... 어떤 문제이던지 해결 방법은 참 많을 수 있다라고 생각한다. 하지만, 문제를 내는 사람은 알게 모르게 본인이 생각한 방향대로 문제를 해결해 주기를 원하고, 그 방향으로 생각하도록 단서를 달아서 질문을 던지기 마련인 것 같다.

 나는 이 질문을 받으면서 생각했다. 

 그래 이건 파일 리스트를 얻어와서 for 문을 이용해서 아래처럼 수행시키면 되겠구나.

for FILENAME in `ll /target`
do
  echo $FILENAME
  head -n 1 $FILENAME
done


 알려주고 곰곰히 생각해보니 왜 굳이 이렇게 쉘 스크립트 작성해야하나 싶은거다. -_-

 분명히 이보다 훨씬 더 좋은 유닉스 최강의 프로그램!!! find 가 있는데 말이다.

find /target -exec echo {} \; -exec head -n 1 {} \;


 굳이 스크립트가 왜 필요하다고 생각했을까?? 싶을 정도로 너무나도 간단한 이 한가지 구문으로 결국 문제는 클리어~ 형상이 안부 묻고 일하러 ㄱㄳ

 이번일을 격으면서 생각한건데 어떤 질문이나 문제이던지 약간 틀어진 각도에서 문제는 다시 한번 재해석하는 과정을 거쳐야할 것 같다라는 생각을 해본다. 분명히 문제를 다른 각도에서 볼 수만 있다면 정공법을 이용하는 것보다 훨씬 더 편한 방법으로 문제를 해결할 수 있을 것 같다.

ps. 인생사 꼼수없는 문제는 없는 듯 하다. 히히히 : P

저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 박영창

 최근에 공부를 위해서 VMWare 상에서 리눅스를 설치하고 DB(오라클, db2)를 설치를 했습니다. 문제는... 이놈의 디비가 좀 큰게 아니라서 초기에 설정했던 12기가라는 파티션이 결코 크지가 않다는 것을 발견하면서부터 였습니다.

 이 글은 저와 비슷한 문제점을 가지신 분들을 위해서 작성된 것입니다. 그외에도 LVM을 이용해서 파티션을 구성한 경우라면 참고할 만 할거라고 생각합니다. (만약 파티션을 구성할때 LVM을 이용하지 않은 경우라면 용량은 증설해도 하나의 파티션 처럼 사용하긴 힘들겁니다. -_-;;; VMware Machine 지우고 재설치 고고씽~~)

 LVM 이라는 녀석을 처음으로 실재로 써본것은 HPUX 교육을 받으면서 였습니다. 그 이전에도 있다는 사실은 알았지만 사실 여러개의 명령어들이 얼키고 설켜있어서 왜 이렇게 어렵지라는 생각만 했던 것 같습니다. 물론 실제로 공부하고 보니 정말로 별게 없는게 이 LVM 으로 디스크를 관리하는 것이긴 하지만요.

df -h 명령으로 살펴본 파티션의 크기 (오라클 11g의 경우 설치만해도 12기가가 가득차더군요)

현재 실습으로 삼은 VMWare 상의 리눅스의 파티션은 모자라지 않습니다. 그냥 추가하는 작업을 해볼 생각이니 참고만 하세요. ㅎㅎ


보시는 바와 같이 현재 LVM이 잡고 있는 볼륨 그룹에는 Free PE 가 전혀 없습니다. 따라서 용량을 더이상 추가할 수가 없는 것이죠. 여기서 우리는 VMWare 가 사용하는 디스크 파일의 크기를 좀더 늘려줄 필요가 있습니다.

VMWare 에서 디스크 용량의 크기를 늘려주는 기능은 GUI 환경상에서 찾을수는 없고, VMWare 디렉토리상에서 찾아야합니다. 디렉토리로 이동해 보면 vmware-vdiskmanager.exe라는 파일을 찾을 수 있으며, 이 프로그램이 VMWare 상에서 인식하는 하드디스크의 용량을 증가시켜주는 툴입니다.


 여기에서 아래와 같은 방식으로 용량을 늘이고자하는 디스크 파일을 직접 입력하고 -x 옵션으로 늘이려고 하는 용량 만큼을 명시하면 됩니다. VMWare 가 실행중인 상태에서는 수행이 안돼기 때문에 VMWare를 suspend 시키고서 실행하면 됩니다. (디렉토리 이름에 공백이 들어간 경우라면 " 로 감싸야한다는 걸 잊지마시길...) 

 실행은 되어도 실제로 디스크의 용량을 인식시키려면 재부팅하는 과정을 거쳐야하기 때문에 가능하면 OS를 내리고서 작업하시길 권합니다.

저의 경우에는 아래의 옵션을 주었습니다. -t 옵션의 경우에는 처음 VMWare 에서 디스크를 만들때 사용하는 옵션에 맞추어서 사용하면 됩니다. -x 옵션을 줄때 주의할 점은 추가분이 아니라 만들고자하는 디스크의 총량을 명시한다는 사실입니다.

vmware-vdiskmanager.exe
-x 18GB
-t 3
"D:\@Admin.Doc\My Virtual Machines\db2_95_on_linux\oracle_11g_on_linux-cl1.vmdk"



VMWare 로 OS 를 기동합니다. 이제 디스크를 늘였으니 디스크의 상태를 봐볼까요?

디스크의 총용량이 18G로 증가했음을 확인할 수 있습니다. 현재까지 만들어진 물리 파티션의 한계는 12기가이구요.


여기서 이제 저희가 해야할 일은 증가된 용량의 크기만큼은 6기가 분량의 디스크 공간을 Physical Volume 으로 만들고 해당 볼륨을 기존에 설정되었던 Volume Group 00 으로 추가하는 작업을 해야합니다. 일단 물리 볼륨을 작업하기 전에 잔여 용량을 파티션으로 작성해야하기 때문에 fdisk  상에서 작업을 합니다.

작업을 마친후에는 리부팅합니다.

더보기

일단 여기까지 마치면 대충 용량을 증설하는 작업이 거의 완료된 거나 마찬가지 입니다.

볼륨그룹에 추가 용량을 더하기 전에 Physical Volume 을 추가하기 위해서 pvcreate 작업을 실시합니다.
추가된 물리 볼륨을 vgextend 를 이용해서 기존의 VolGroup00  추가합니다.


보시는대로 처럼 추가된 물리 볼륨 만큼의 Free PE 가 생겨난 것을 확인할 수 있습니다. 여기에서 이제 논리 볼륨을 증가시키고 실제로 ext3 의 파티션 공간을 늘여주는 작업을 하면 용량 증설 작업이 종료됩니다.


여기까지 완료되면 일단 물리적으로 용량의 증설을 모두 끝난 상태입니다. 다음의 파일 시스템의 영역에서 실제 사용가능한 용량의 범위를 증설하는 작업입니다. 당연히 파일 시스템이 용량 증가하는 방식을 제공해야합니다. 보통 리눅스에서 많이 사용하면 ext2, ext3 와 같은 파일 시스템은 해당 툴이 존재하기 때문에 간편하게 사용가능합니다.
(사용하는 프로그램은 OS의 버전과 파일시스템에 따라서 상이할 수 있습니다. CentOS 5에서 설치했던저는 resize2fs라는 툴을 이용해서 변경하였습니다.)


이상입니다. 대충 이런식인데요 적당히 따라만 해보시면 됩니다. 설마 이런 작업 할일이 많겠습니까? ㅋㅋㅋ
그냥 이런 방식으로 쓸수도 있구나 하고 생각해두세요.

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 박영창
요즘 db2 공부 때문에 리눅스용 db2 설치를 위해서 간만에 데스크탑에 우분투를 설치했다. 메인으로 리눅스를 올린건 2학년 겨울 방학때 이후로 처음이니 대략 3년 정도만인 듯하다. 당시에는 우분투의 전신인 데비안을 이용해서 TV카드까지 잡고서 나름 3개월 넘는 기간동안 열심히 리눅스 공부했었는데... 지금 생각해보면 뻘짓이었다는 생각이든다.

어쨋든 요즘 우분투를 설치하니 정말로 많은 커스터마이징이 이루어져서 어지간한 작업은 정말로 우분투 만으로도 가능할 정도가 돼었다고 할만했다. 하지만 그래도 여전히 우분투 환경만으로는 해결이 안돼는 업무는 많은지라... 어쩔 수 없이 가상 머신 프로그램인 버박(virtualbox)를 이용해서 게스트 OS를 윈도우로 설치를 시도했다. 이것도 당시와는 많이 달라진 것인데... 가상 머신 프로그램을 이렇게 쉽고 간단히 올릴 수 잇고, 높은 퍼포먼스가 나온다는 사실은 상당히 놀라운 일이다.

문제는 이 녀석이 왠일인지 usb 디바이스를 정상적으로 잡지를 못한다는 것이다. 그래서 구글링을 해보니 역시나 해결책이 존재했다.

출처)http://link.allblog.net/14397664/http://silent2k.tistory.com/106
1. Ubuntu 8.10 ("Intrepid Ibex")  다운로드 / 설치
http://www.virtualbox.org/wiki/Linux_Downloads

2. /etc/init.d/mountdevsubfs.sh에 내용추가
$ sudo gedit /etc/init.d/mountdevsubfs.sh

#
# Mount /dev/pts. Master ptmx node is already created by udev.
#
domount devpts "" /dev/pts devpts -onoexec,nosuid,gid=$TTYGRP,mode=$TTYMODE

#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs “” /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount –rbind /dev/bus/usb /proc/bus/usb

3. usb device 권한 설정 (기존 내용 수정)

$ sudo gedit /etc/udev/rules.d/40-basic-permissions.rules

# USB devices (usbfs replacement)
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, MODE=”0664″, GROUP=”vboxusers”
SUBSYSTEM==”usb_device”, MODE=”0664″, GROUP=”vboxusers”

$ sudo gedit /etc/udev/rules.d/40-permissions.rules

# USB serial converters
SUBSYSTEM=="usb_device", GOTO="usb_serial_start"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GOTO="usb_serial_start"
GOTO="usb_serial_end"
LABEL="usb_serial_start"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", \
                    MODE="0666", GROUP="dialout"
LABEL="usb_serial_end"


4. /etc/fstab에 usb mount 추가 (devgid="vboxusers 그룹ID"로 입력..)

$ cat /etc/group | grep vboxusers
vboxusers:x:125:angelos

$ sudo gedit /etc/fstab (위에서 확인한 vboxusers group 넘버로 아래 내용을 추가합니다.)

# usb
none /proc/bus/usb usbfs auto,busgid=125,busmode=0775,devgid=125,devmode=0664 0 0

예전에 마운트 해서 쓰면 우분투에서 잡고 있는 usb 외장 하드를 virtualbox가 가져와서 서로 충돌이 났었는데..
자동으로 우분투에서 빠지고 virtualbox 윈도우로 잡히는걸 확인했다..
윈도우에서 사용해제하면 다시 우분투로 마운트 됩니다..

※ 참고자료
http://arosiqueh.wordpress.com/2008/10/26/virtualbox-204-en-ubuntu-810-rc-con-usb/
이렇게 설정하면 된다고 함. 자 잠시 부팅점... ㅡ.ㅡ;;

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 박영창

더보기



10월 30일

vsky123@paran.com
이현철

root  //   hp

물리적구조 <=>  논리적구조
성능 :  1.  병렬 실행 가능성 (대량의 job 처리) : 물량투입
          2.  locality ( 지역성) : 불필요한 overhead  제거 ( cache, 조각모음)
=================
hostname      : tcp/ip용 이름 (최대  64byte까지가능)
uname   -a    : uucp망에서 이름 : OS 버전확인 :  최대 8byte
주의:  만약  /etc/rc.config.d/netconf  에서 
       NODENAME 변수가 없으면   hostname은  8byte 크기로 제약됨
                                , 있으면   hostname은 64byte 까지
lanscan  (lancard 목록)
netstat  -in  (전체 ip 목록보기)
ifconfig   lan0  (lancard  lan0의 정보보기)
netstat  -rnv  (routing table 보기)

setboot  (부팅장치 경로)
ioscan  -funC  disk  (디스크 목록보기)
ioscan
lvlnboot  -v(부팅에필요한파티션정보:  커널위치, / file system,swa,dump)
strings  /etc/lvmtab  ( lvm에 등록된  vg , 소속 disk 목록)


telnet  localhost
sam  ( menu방식의 system관리 툴)
메뉴이동  : tap : 큰 메뉴이동,  화살표 4개 : 세부이동
                선택 : space bar  :
                실행, 진입 :  enter
VM  :  disk & partition 관리 기술 ( 종류 lvm ,  VxVM, CVM)
      :  pc 보다  확장성, 관리성이 뛰어난 방식
LVM (logical volume manager)
명령 모양
접두어 :  pv, vg, lv
동사부 :  create ,remove,display. change, extend, reduce ,export,import
예)   pvcrate, vgcreate, lvcreate
pv : (physical vloume) 
     lvm용으로 준비된 disk
(일반 disk나 Storage 의 LUN: logical unit number:storage내 공간할당)     : pvcreate으로 생성
vg  :  volume group :  1개이상의 pv들의 group : disk pool
     : 각 disk(pv) 의 용량을 합쳐놓은 상태
lv   :  logical volume  : vg상의  partition : 공간할당

bdf
lvextend  -L  200  /dev/vg00/lvol4  (lvol 확장)
fsadm  -F  vxfs  -b  200M   /home  (file system 확장: on-line jfs있을때)
bdf

hfs (=ufs) : pa-risc이고 /dev/vg00/lvol1  (커널) 일때만 사용
vxfs (veritas file system) :JFS  : 그외 모든 경우( default)
mount  -v
telnet  59.29.225.222


ioscan  -funC disk
===============
cat  /etc/fstab
strings   /etc/lvmtab
ll   /dev/vg00
ll   /dev/vg01





hp-ux의 disk이름   /dev/dsk/c#t#d#  
 c#  : controller 번호  (scsi, fc)
 t#   : scsi  target  id(address) :  0-15  : controller는 7번
 d#  : array 장비경우 LUN 번호
 0/1/1/0.1.0   : hp-ux  h/w address :OS관점의 주소
cd   /dev/dsk
ioscan  -funC  disk
===============
===============
sam 이용  vg, lv, filesystem  관리 (LVM)
sam => disk & file system  =>  volume group => 생성,확장,제거
                                     =>  logical volume => 생성,확장,제거
                                     =>  disk device     => vg에서 disk 빼내기

===============
lvm명령으로 관리하기
ioscan   -fnC  disk   (disk 전체 목록 구하기)
strings   /etc/lvmtab  (lvm에 등록된   vg, 소속 disk 목록 : 사용중목록)
전체 - 사용중인 disk  => 남은 disk 목록 구함.

1. pv 생성 (lvm용으로 준비)
   diskinfo   /dev/rdsk/c#t#d# (disk 크기 정보)
   pvcreate   -f    /dev/rdsk/c#t#d#   (-f 는 강제 옵션)
2. vg 생성 (disk pool: 각 disk(pv) 들의 공간 합친상태)
   mkdir    /dev/vg01    (디렉토리이름이  vg이름이 됨)
   mknod  /dev/vg01/group   c  64  0x010000
             ( group은  vg의 device file)
          c  :  character device
          64 :  major number : kernel driver번호 : lsdev 번역가능
          0x : 16진수 표기
          01  : 첫번째 2칸 : vg의 index 번호 
                  (vg01 이면  0x01    vg02  이면  0x02  )
          00  : 가운데 2칸 : 사용안함
          00  : 마지막 2칸 : lvol의  index 번호    ( ll   /dev/vg00  )
    vgcreate   -s  16  -p   64   vg01   /dev/dsk/c#t#d#   계속나열가능
         -s  : partition 기본 할당단위  : 기본 4MB지만  8또는 16 추천함
         -p  : vg의 최대참여 가능한 pv갯수의 상한선
    vgdisplay  -v  vg01 (확인)
    vg의 전체 크기  =  Total PE    *  PE size
    vg의  free 공간 =   Free PE  *  PE size
3.  lv (vol)  생성  : 파티션 :공간할당
    lvcreate    -L   4096    vg01     (단위 MB :  4096MB)
           (/dev/vg01/lvol1,   /dev/vg01/rlvol1)
    lvcreate   -L   4096   -n   data1   vg01  ( 이름부여)   
           (/dev/vg01/data1  ,   /dev/vg01/rdata1)
4. file system 생성 (dir 구조 생성)
    newfs  -F  vxfs   -o  largefiles  /dev/vg01/rlvol1  (raw device 사용)
    newfs  -F  vxfs   -o  largefiles  /dev/vg01/rdata1
5.  file system mount(연결) 하기
    mkdir   /oracle1
    mkdir   /data1
    mount    /dev/vg01/lvol1    /oracle1
    mount    /dev/vg01/data1   /data1
    bdf
6.  #vi   /etc/fstab  (다음번 부팅시 자동 mount 지원)
   마지막 줄에
   /dev/vg01/lvol1   /oracle1   vxfs   defaults   0   2  (기본속성,안전성)
   /dev/vg01/data1  /data1      vxfs  delaylog   0   2  (약간의 속도위주)
=================
lv, file system 확장하기
1. on-line jfs 이용   mount 상태에서 확장하기
bdf   /oracle1
lvextend   -L  6000   /dev/vg01/lvol1    (주의 4096=> 6000 :최종값지정)
fsadm   -F  vxfs  -b  6000M   /oracle1  
bdf
2.  on-line jfs 없을때  umount 후 확장하기
lvextend  -L    7000   /dev/vg01/lvol1  (6000 => 7000MB증가)
cd   /
umount     /oracle1  (system이랑 연결이 끊어짐)
extendfs   -F  vxfs   /dev/vg01/rlvol1  (newfs 명령의 연장선)
mount   /dev/vg01/lvol1   /oracle1
bdf
=============
lv 제거
cd   /
umount    /data1
lvremove   /dev/vg01/data1
  /etc/fstab 에서   /dev/vg01/data1 삭제할것
===========
largefile 속성 체크
lvcreate   -L  4096   -n   data2  vg01
newfs  -F  vxfs   /dev/vg01/rdata2  (largefile 속성 없는 상태)
mkdir  /data2
mount   /dev/vg01/data2   /data2
=============
prealloc  (유저가 지정한 byte 크기로 file 생성: test file 생성시 사용)
cd   /data2
prealloc   test1   12345
ll
prealloc   largefile   3000000000  (0 9개 :  3G 생성)
fsadm  -v   /data2  (속성 확인)
fsadm  -F  vxfs  -o  largefiles   /data2  (mount 상태에서 속성부여 가능)
prealloc   largefile   3000000000  (재시도)



========
device file 종류들    (동이의 :  special file)
block device : block 단위 IO ( hp-ux 는 1kb) : buffer 사용
     : 전송효율이 뛰어남
character device : raw device : byte  단위의 IO : buffer 사용안함
     : LVM 경우  초기화 작업시 주로 사용 (pvcreate, newfs, fsck ...)


10월 31일

1)  lvol (파티션 생성)  
이름   web1,     장소  vg00,   크기  100MB,   mount dir  :  /web1
vxfs ,  largefiles 속성 부여
/etc/fstab 에 추가하세요.

2)  방금 만든  /dev/vg00/web1  을  최종200MB 로 증설, file system 증설
    bdf  /web1 확인  (on-line jfs이용,  mount 상태에서 fsadm)

3)  300MB  (online jfs 없이  umount, extendfs 이용 )

pv : lvm용 disk
vg : disk pool (disk group) : 단일 disk 의 단점을 극복(확장가능)
lv : 파티션 (확장가능)

1차원 구조( flat 구조) : 구조간단하지만 큰작업에는 역부족
   pc의 disk구조,   /etc/hosts,   /etc/passwd
2차원 구조(계층구조) : 복잡하지만   큰작업 적합
   VM(LVM)       ,   dns         ,   LDAP(directory service)

==============
1.
man  lvcreate
lvcreate   -L   100   -n  web1   vg00
newfs  -F  vxfs   -o  largefiles  /dev/vg00/rweb1
mkdir   /web1
mount  /dev/vg00/web1   /web1
vi  /etc/fstab
마지막줄에
/dev/vg00/web1    /web1   vxfs   delaylog   0   2

2.
lvextend   -L  200  /dev/vg00/web1
bdf  /web1  (증설 안된상태)
fsadm  -F  vxfs  -b  200M   /web1
bdf  /web1

3.
lvextend  -L  300   /dev/vg00/web1
umount   /web1
extendfs  -F  vxfs    /dev/vg00/rweb1
mount   /dev/vg00/web1   /web1
또는   /etc/fstab 에 등록된경우   mount   /web1
================
전체 file system umount 하기
umount   -a  (단 사용중인 file system은  umount 거부함 : device busy)
bdf  (현재 mount 된  file system의 용량정보)
또는  mount  -v  (속성위주, file system type, mount option)
mount  -p

전체 file system mount하기  ( /etc/fstab 이용)
mount  -a   (마운트만 함)
또는  mountall  (file system 체크후 mount  함:  single user mode에서 사용)
================
bdf  /web1
1]  cd   /web1  ( 사용중)
2]  umount   /web1
2]  fuser   -cu   /web1  
 ( mount point 지정해서 사용중인 전체 (sub dir포함) process 목록보여줌)
2]  fuser   -cuk  /web1   (k옵션 : process 들을  kill (강제종료))
2]  fuser   -cu   /web1    (재확인)
2]  umount   /web1
===============
file system  check (정비)하기
umount 한상태에서
fsck  -F   vxfs   /dev/vg00/rweb1
mount  -a
===============
unix의 mount 개념
bdf 
/dev/vg00/lvol3 가  최상위  /  dir  제공한후
나머지 

unix는  단일  dir 구조를 가짐 (root  dir  "/" 가 1개 만존재하고
나머지 file system들을  sub dir 에 연결함 (mount함, mount dir,point)

unix는 mount는  3단 합체 로봇

=================
OS 는  메모리 용량  +  disk swap 용량 만큼 작업공간을 가짐
swap : 메모리 부족시  disk에 임시 저장하는 공간 (단 이자가 사채수준)
swap의 총량은  메모리의  최소 1.5 배 이상 보통은  2~3배정도 설정
#swapinfo  -tm   ( total 크기 + MB )
메모리 용량 확인 
#dmesg  또는  #sam  => performance monitor => system property

예)   oracle 이  작업 공간이  128G 필요함
   1)  memory를   128G    : swap을 최소  1.25배 로 설정가능
    2)        "         64G     :  swap을  2배정도  128G
   3)                   32G     :  비추천: 성능문제 발생
================
swap 생성 하기
1. sam 이용    =>  disk & file system  => logical volume =>
    Action  => create  =>  이름   swap1 ,크기  256,  용도  swap
    swap pri : 1 설정
   sam 종료
   swapinfo  -tm (확인)
   만약  swap들의  pri (우선순위) 가 같은면  round robin  방식적용
   round robin :  돌아가면서 작업함 : load 분산효과

2. 명령으로 swap 추가하기
    #lvcreate   -L  256   -n  swap2   vg00
    #swapon   /dev/vg00/swap2  (swap 활성화) : -f 강제 활성화
    #swapinfo  -tm  (확인)
    #vi   /etc/fstab (마지막 줄에 추가)
    /dev/vg00/swap2   /    swap   defaults  0   0

==================
dns 설정   (12-29page)
#vi  /etc/nsswitch.conf  (name service switch :이름풀이 순서,정책)
hosts:  files  [NOTFOUND=continue]   dns
#vi  /etc/resolv.conf
search  hpec.co.kr  (시스템의 domain name설정)
nameserver   59.29.225.1
nameserver   #.#.#.# (3차 서버 까지 지정가능)
retry  1           (timeout 시 재시도 횟수)
retrans  1500   (timeout 시간   1500ms   => 1.5초 : default  는 5초)
#netstat   -rnv   (default  router 확인)
#ping  www.yahoo.com
#mozilla &
==========
한글 CDE 사용법
CDE 재 login  =>  option  => language  => ja_JP.eucJP (5)=>
  ko_KR.eucKR (4)  설정후 login
한글 입력하기   : ksh 에서 실행후 입력, 한영전환은  space 기준 좌우 3번째 키 -분리되어 있음)
=================
( shell  : user의 명령을 해석, 실행을 하는 프로그램 , 
        command.com,   cmd.exec
    hp-ux의 default shell은  posix  shell(/usr/bin/sh,  /sbin/sh)
    ksh, csh)
==============
echo $LANG
ko_KR.eucKR
date
=====================
shell script 개발시 LANG 을 C(영어)로 지정(통합)할것
#cd
#vi   a.sh
#!/usr/bin/sh     (#!는  script 해석 프로그램 지정: 주석이 아님)
export  LANG=C
date
touch   abc
tar   -cvf   /var/etc.tar   /etc
저장종료
#chmod   u+x   a.sh
#./a.sh  (실행)
================
terminal (단말기) :입력과 출력할수 있는 장비 : screen 과 keyboard +
    serial cable로 구성
console : system 을 관리하는 주 터미널 :항상 사용가능함
==========
who  -r
ll   /sbin/*/*cron

ps  -ef  | grep   cron
=========
CDE 서비스 시작 / 종료

종료  /sbin/init.d/dtlogin.rc   stop

시작 /sbin/init.d/dtlogin.rc   start
=============
mail server   사용하기 않기
ps   -ef  | grep  sendmail
/sbin/init.d/sendmail   stop  (정지)
#vi   /etc/rc.config.d/mailservs
export SENDMAIL_SERVER=0   (기존 1=>  0  :  disable 시킴)

test실행
/sbin/init.d/sendmail   start
ps   -ef  | grep  sendmail  (확인)  =>  제어변수가 0 이라 서비스 생략
===============
mail server   사용하기
#vi   /etc/rc.config.d/mailservs
export SENDMAIL_SERVER=1
#/sbin/init.d/sendmail   start
ps   -ef  | grep  sendmail  (확인)
===============
PA-RISC cpu 경우 system single user mode 진입법
    (목적 : root passwd 복구, 심각한 OS 장애처리)

cd   /
shutdown  -ry  0
system이 완전히 종료후  다시  console에 글씨가 보일때   esc key
여러번 눌러서  BootRom  상태로 진입.  (Main  menu  확인)
information  =>  all  =>
main  ( 첫화면 복귀)
path  (default   boot device 보여줌)
search  (장치 검색, disk, dvd, tape 등등)
boot   pri   ( primary boot device로 부팅)
IPL 과 수동작업? ( IPL=ISL :  initial program/system loader :1차커널로더
   : y  (yes : local disk로 부팅하면서 장애처리시만 사용)
   : n  (no  : Auto booting 조건 : 그외 모든 상황 (os  설치 포함))
y  입력
ISL>hpux   ll    (/stand dir 보여줌)
ISL>hpux  -is  (single user mode 진입)
#특이점  ( single user mode는  login 과정이 없음)
passwd   root
#ps  -ef
#mount  -v
#mountall
#bdf
#init  3
===============
www.hprc.co.kr

11.00
11.11   ==   11i  v1.0
11.23   ==   11i  v2.0
11.31   ==   11i  v3.0
===============
pa-risc  : hp고유의 cpu  :  HP  9000
Itanium 2 : intel + hp      : HP Integrity
===============
rp 7420
rx 7620
r: rack type
p:  pa-risc
x:  itanium  : x86
7 : 천자리 : 크기
4 : 백자리 : pa-risc
6 : 백자리 :  itanium  : x86
마지막 2자리는 모델따라 다름



시스템 및 작업 그룹 관리 : HP-UX 안내서  :  11.23 이하 user guide


ping  59.29.225.255

11월 2일

ioscan
ioscan  -funC  lan
-f  :  full  listing
-u :  usable device만  (전체중 실제 가능한 device위주) :
       : 실제 h/w 검색안하고 예전 조사정보 보여줌
-n :  device file 명 보여줌
-C : class  ( 종류) 지정 필터링  (lan,  disk,  tape)

lancard 설정 명령들
/sbin/init.d/  hp  +  driver이름
#vi  /etc/rc.config.d/netconf
#HOSTNAME=kum181  (원  이름)
HOSTNAME=hp181 (바꿀이름)
만약   HOSTNAME을  9 byte이상 사용할려면   NODENAME변수설정필요
예) HOSTNAME=hpkorea181  (nodename과 분리사용시 최대 64byte까지)
     NODENAME=hp181  (최대 8byte까지)
===============
#IP_ADDRESS[0]=59.29.225.###
IP_ADDRESS[0]=10.1.1.###
#ROUTE_GATEWAY[0]="59.29.225.254"
ROUTE_GATWAY[0]="10.1.1.254"

================
init   2
/sbin/init.d/hostname   start
hostname
uname  -a
/sbin/init.d/net   start
ifconfig   lan0
netstat  -rnv 

ifconfig   lan0   down
netstat  -in
=>  lan0*    (* 는  down   상태)
ifconfig   lan0   up
netstat  -in
ifconfig   lan0  unplumb  (ip구조 삭제 : 가장 강력한 청소법)
===========
hostname, ip 변경시  /etc/rc.config.d/netconf 와  /etc/hosts 일치시킬것
#vi  /etc/hosts
10.1.1.자신IP       hp###     web
추가
==========
변경 적용하기 (임시방법 =>  재부팅 권장함)
#shutdown  -y   0( single user mode 진입후=> 3로  이동)
#init  3
=======================
run level 상관없이  개별서비스  stop/start 시키기
/sbib/init.d/서비스명   stop 또는  start
run level 이용 다수의 서비들 stop 또는  start
init   1 , 2 , 3
단  multi user mode에서  single user mode 진입시
cd   /
shutdown  -y  0
=======================
nfs 서비스에서 멈춘경우
===========
lan0  ==  lan0:0  같음
=============
hostname 과 ip, default  router  ip를 복구후
cd  /
shutdown  -ry  0
===========
netstat  -rnv
route  -f  (청소)
netstat  -rnv
/sbin/init.d/net   start  (ip, default  router 설정)
===========
netstat  -rnv
route  delete  default  59.29.225.254
route  add  default  59.29.225.254  1
=============
subnet 계산하기
1. subnet bit 의 길이를 정한후   bit들을  모두  0에서  모두 1까지(2진수) 나열후 10진수로 자리 맞쳐 읽는다.
subnet 주소
128.1.0.0/24   255.255.255.0
128.1.1.0/24   255.255.255.0
         2
2. 각 subnet의 첫ip 와 마지막 ip 구하기
   간단계산법:  첫 ip : subnet 주소 +  1
                     마지막 ip :  다음 subnet 주소  -2
===============
dtcalc
192.   6.  12.  34  =>   1100 0000. 0000 0110. 00001100. 0010 0010
255.255.255.224  =>   1111 1111. 1111 1111. 11111111. 1110 0000
                        AND  1100 0000. 0000 0110. 00001100 . 0010 0000
                                      192   .                6.           12.         32/27

==========
linkloop  -i   0   0x#####  (상대방MAC지정)

daemon: (수호신): background로 실행중이고 항상service를 제공하는 process
grep  -il    sendmail   /etc/rc.config.d/*
                nfs
fork/exec()

inetd 가 종료시  기존 연결은 유효하고 새로운 연결은 지원안함
inetd  -c   : /etc/inetd.conf 를 새로 읽어줌
inetd  -k   : inetd를  kill 시킴
inetd  -l    : 소문자 L :   접속기록  /var/adm/syslog/syslog.log 에남김
옵션없는 inetd 는 그냥 실행만함
ps   -ef  | grep  inetd
================
shell  변수 선언시 주의점
1.  대입기호  =  앞뒤에 빈칸은  에러
      abc   =    hello  (실패)
      abc=   hello (실패)
      abc   =hello (실패)
      abc=hello  (성공)
/sbin/init.d/*   ,    /etc/rc.config.d/*   두 종류 모두  shell script 임
2.   대입기호  =  의  우변값이  여러개 단어로 나누어 질때는  인용부호로
    감싸주어야 한다(한개로 합침)
    이때  큰따옴표 안에서는 shell의 해석이 허용지만
            작은 따옴표 안에서는 shell의 해석없이 직접 변수에 대입됨.
hi=hello   root
hi="hello  root"
echo  $hi
echo  $PATH
echo  $DISPLAY
로컬변수 => Chile process에게 상속 가능한 환경변수화 시키기
export  변수명
export  PATH
export  TERM=vt100  (mp에서  console 접속시 터미널 type 정의)
export  TERM=hp      (hp 전용  h/w console 사용시)
echo  $TERM
 
last
last  -R  (login 성공기록  +  IP 정보)
lastb
lastb  -R (login 실패기록  +  IP 정보)
========
ssh   kum181

구성 file에서 인용부호 의 의미
shell 변수 설정시 주의점

11월 3일

ps  -ef| grep inetd
netstat  -a  |  grep  LISTEN
netstat  -a  |  grep  ftp
netstat  -a  |  grep  telnet
telnet  59.29.225.223  10023
netstat  -a  |  grep  telnet
=========
inetd 의 보안 목록 설정
#vi   /var/adm/inetd.sec
ftp    deny    127.0.0.1
telnet   allow   59.29.225.*   127.0.0.1
#inetd  -k
#inetd  (재시작)
==========
ftp   자신ip (59.29.225.###)
ftp   127.0.0.1
===============
system에  여러개의  ip 가 있을때 외부 접속시 source ip 결정되는 원리
:나가는 출구쪽 lancard 의 ip가 source ip가 됨
netstat  -in  (lancard와   ip연결)
netstat   -rnv
==============
#tail   -f   /var/adm/syslog/syslog.log
#inetd  -l  (로그 활성화)
#telnet   127.0.0.1  (또는  localhost)
#telnet   자신ip 또는  kum###
==============
14-20
rlogin   rx223
telnet  localhost
user11   //  class1
rlogin   rx223 
exit
id
rlogin   rx223  -l   root    ( kum181의  user11   =>   rx223  root )
exit
===========
#remsh  rx223   cat   /root/abc 
   (kum181의 root  =>  rx223 의 root  접속후  서버에서 cat 실행후
  결과는 자신의 화면으로 보여줌)
#remsh  rx223   hostname
#remsh  rx223   swapinfo  -tm
#remsh  rx223   touch   /tmp/leehc
=====================
#rcp   rx223:/tmp/leehc   /
#rcp   -rp   rx223:/home/h4262    /var
#cd   /var
#ls
==========
암호화 작업들
SSH (Secure Shell : 기존 telnet, ftp, rlogin, rcp 등 대체함)
SSL (Secure  socket layer :  app 과 tcp 중간에서 암호화처리
     : web(https) 또는  app에서 암호화 채널로 주로 사용)
IPSec  (L3  :  ip level에서  암호화 :  상위 서비스 상관없음 :
 주로 VPN  에서 사용)

==================
접속한 ssh 서버의   finger  print 는   clinet  user의  home에
cat  ~/.ssh/known_hosts (추가 되어 있음)
필요시  rm  ~/.ssh/known_hosts  하면 초기화 가능함
=================
nfs  server 만들기
제어변수 체크
#vi   /etc/rc.config.d/nfsconf
NFS_SERVER=1
NFS_CLIENT=1
#/sbin/init.d/nfs.server   stop
#/sbin/init.d/nfs.server   start
공유목록생성
#vi   /etc/exports
/home
/tmp
공유선언
#exportfs   -a    (/etc/exports 의 내용을 공유선언함)
#exportfs  (공유목록 확인 : 권한 위주)
#showmount  -e   (공유목록 확인 : 접근 리스트)
=============
nfs client 관점에서  공유 사용하기
제어변수 체크
#vi   /etc/rc.config.d/nfsconf
NFS_SERVER=1
NFS_CLIENT=1
#/sbin/init.d/nfs.client  stop
#/sbin/init.d/nfs.client  start
서버의 공유 목록 보기
#showmount   -e   rx223   (rx223의 공유 목록보기)
#mount   rx223:/home   /home (1개의 dir는 1개의 file system만연결가능
#mkdir   /myhome
#mkdir   /mytmp
#mount   rx223:/home   /myhome
#mount   rx223:/tmp   /mytmp
#bdf
#mount  -v
#cat   /mytmp/abcd
===========
#groupadd  -g  900   dba
#useradd   -u  900  -g  900   -m   oracle
#passwd   oracle
===========
nfs 공유시 조건들
default 값:  everyone   ,  rw
1.  권한    root(rw포함)  >    rw   >   ro
     root  :   nfs client 의  root는 nfs 보안산  nobody로 권한 강등함
                이때  root 옵션으로서  root 권한 인정해줌
     rw  :기본권한
     ro  : read only
2.   access  : 접근조건
      access 조건이 있을때 지정장비만 허락되고  기타 장비 접근 불가
          (보안상 설정 권장)
      accesss 조건이 없으면  지정된 권한 한단계 아래 권한으로 기타 장비
     에게 권한 부여  (보안 구멍 가능함)
==============
사용 중인   nfs  umount  하기
umount   /mytmp
fuser   -cu   /mytmp
fuser  -cuk   /mytmp
fuser   -cu   /mytmp ( 재확인)
umount   /mytmp
=================
cd   /
umount  -aF  nfs  ( nfs 계열 모두  umount )
mount   rx235:/home   /myhome
cd  /myhome
ls
====
cd  /
umount  /myhome
mount   -o  soft,retrans=1   rx235:/home   /myhome
cd   /myhome
ls
=============
cd  /net
ll
cd  kum181
========================
cd   /
umount   -aF  nfs
========================
12-19 page 
dns 서버 구축하기
#vi  /etc/hosts
59.29.225.2     www   web1
59.29.225.3     www   web2
#mkdir   /etc/named.data  ( dns 자료 보관  dir)
#cd   /etc/named.data (필수)
#hosts_to_named   -d  hpec.co.kr   -n  59.29.225   -z   자신ip
                 -b   /etc/named.conf  (한줄에 typing)
   (/etc/hosts  =>  dns용 전환)
file 중  db.cache  (root  dns 서버 목록: 이름풀이 출발점)
#ftp    ftp.rs.internic.net
 anonymous  (익명)
abc@ddd.com   (암호  email style)
cd   domain
get   db.cache
bye
#cat  db.cache
#vi   /etc/rc.config.d/namesvrs
NAMED=1    (1로 수정)
#/sbin/init.d/named   start
#ps  -ef   |  grep   named 
         ( BIND 는 dns 프로그램중 1개,BIND 의 실제 daemon  )
#vi    /var/adm/syslog/syslog.log  (장애 메세지 확인)
#nslookup (체크)
server   자신ip  (server 명령으로  다른 dns 서버에 접속 가능)
www.hpec.co.kr
www.hp.com
www.hp.com
ctrl+d (end of file :EOF)
mail  서버  추가,  web 서버의 ip를  변경
#vi   /etc/named.data/db.hpec   (domain 의  정보 보관 :  zone  file)
59.29.225.5   mail
59.29.225.6     www   web1
59.29.225.7     www   web2
update 방법
1.  /sbin/init.d/named  stop
    /sbin/init.d/named  start
    확실하지만   재시작으로 인한 cache 정보 소실
2.  sig_named  restart  (구성file들을  다시 읽어줌: 기존  cache 유지함)
    nslookup
    server   자신ip
     www.hp.com
=============
hp-ux 에서  새로 만든  dns 서버 등록하기
#vi   /etc/nsswitch.conf  (이름풀이 순서, 정책)
hosts:  files  [NOTFOUND=continue]   dns
만약 dns 를 사용하지 않을경우는
hosts:  files
#vi   /etc/resolv.conf
search  hpec.co.kr
nameserver   자신ip
nameserver   파트너ip
retry   1
retrans  1500  (timeout  1.5초  기다림)
=================
cd   /var
rcp   rx235:/var/ix*    /var
ls  ix*
depot  : s/w  저장소 ( dir, file, cd-rom, dvd, tape)
swinstall    -s   /var/ixL#####.depot     (-s : source 위치: 절대경로)
s/w 선택후 (다중선택 가능)  => Action => Mark => 다시 Action => install
설치후  프로그램 종료
swinstall    -s   /var/ixE#####.depot
==================
depot  server  : s/w 배포서버(install 서버)
생성방법 :  swcopy 이용  특정 dir 에 복사해둠(등록및 검색가능)
프로그램이나  patch  가 여러개인경어 1개 dir 로 모아 둘수 있음
swcopy   -s   /var/ixL#####.depot
swcopy   -s   /var/ixE#####.depot   \* ( 역슬래쉬 * : s/w 모두선택)
depot 서버이용  network으로  s/w 설치
swinstall   -s  자신ip
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 박영창
신입사원 직무역량 강화 08년10월30일 - HP-UX
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 박영창
신입사원 직무역량 강화 08년10월30일 - HP-UX
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 박영창

 보통 한영전환을 shift-space 로 바꾸는 사람들은 도스시절에 워드를 배운 사람들일 경우가 많을거라고 생각하는데... -_-;;

 당시로서는 그게 당연했을지 몰라도 대세가 한/영키로 바뀐지금은 shift-space를 쓴다고 하면 보통 이상한놈으로 보는 사람도 상당히 많다. 그래도 불편한건 불편한 것이라 윈도우에서 제공하는 101키 드라이버(type 3)을 사용해서 그동안 이 문제를 해결했었다.

 프로그램 그동안 상당히 많이 쉬다가 드디어 얼마전에 입사 교육을 받으면서 교육장에 컴퓨터를 똑같이 세팅하고 봤더니... ctrl+space 이벤트를 키보드 드라이버가 먹어버리면서 자동완성이 작동하지 않았다. ;;;

그래서 찾은 해결방법이 아래 프로그램을 이용하는 방법이다.

http://www.autohotkey.com/

에서 프로그램을 받고

스크립트를 편집해서
+space::Send, {vk15sc138}
를 추가하고 리로드하면 shift+space를 이용한 한영전환이 가능해진다.
ps. 당연히 드라이버는 103/106키 드라이버를 사용하라!!!

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 박영창
요즘 새롭게 떠오른 P2P 프로토콜이 있습니다.

바로 BitTorrent 라는 프로토콜로 Tracker 라는 교환서버를 기반으로 동작하는 P2P의 한 형태입니다. 자세한 사항은 위키 페디아를 참조하세요. 장점이자 단점은 검색이라는 것이 아닌 .torrent 파일을 가지고 교환된다는 점이죠. (대신에 .torrent 를 다루는 폐쇄형 공유 커뮤니티들이 더러 있습니다)

사용자 삽입 이미지

http://en.wikipedia.org/wiki/BitTorrent


사용자 삽입 이미지

이 게임은 클라이언트는 용량만 3GB이다

덕분에 torrent 파일이 없으면 다운로드는 요원한 일이라는 것은 장점이라면 장점. 단점이라면 단점이라면 단점입니다. 하지만 대용량 파일을 가진 컨텐츠를 배포해야하는 서비스에서는 이 만큼 좋은 배포 형태도 없죠.

가깝게는 블리자드사의 World Of Warcraft 한글판을 이 형태로 배포하고 있습니다. 서비스 제공자의 입장에서는 최소한의 비용 투자로 최대의 효과를 거두어 들이는 거죠 ^^

당연하겠지만 역시 리눅스 콘솔에도 이 프로토콜의 콘솔 클라이언트가 있습니다. rTorrent 라는 녀석입니다. ncurse 라이브러리를 이용해서 콘솔 프로그램임에도 불구하고 굉장히 편하게 사용할 수 있다는 장점이 있습니다.
(오페라 브라우저의 다운로드 매니저는 기본적으로 .torrent 를 지원합니다.)

이번에는 rTorrent 라는 프로그램을 사용해보려고 합니다.

우선은 aptitude 를 이용해서 rTorrent를 설치합니다.
사용자 삽입 이미지

aptitude install rtorrent

사용자 삽입 이미지

엔터키를 이용해 load> 라는 창에 .torrent 의 내용을 입력한다. (파일, URL 무관하다)

방향키로 다운로드 리스트 아이템을 선택하고 오른쪽 버튼을 누르면 해당 다운로드에 대한 정보를 볼 수 있다.
사용자 삽입 이미지사용자 삽입 이미지
사용자 삽입 이미지사용자 삽입 이미지
사용자 삽입 이미지사용자 삽입 이미지
사용자 삽입 이미지사용자 삽입 이미지

※ rTorrent 개발 페이지에서 가져온 단축키 내역입니다. 최신 버전과 약간 차이가 있는 듯합니다.

torrents 추가 및 제거
backspace URL, 파일 이름을 이용해서 torrent 를 추가한다. 디렉토리 내용을 보고 자동 완성하려고 Tab 키를 이용할 수 있다. 이때 ~/torrent/* 같이 와일드 카드 문자를 사용해서 입력하는 것이 가능하다.
return torrent 를 비 활성화된 상태로 남긴다는 점을 제외하면 backsapce 와 동일한 기능을한다. (활성화 단축키 ^s )
^O 선택된 torrent 를 위한 새로운 다운로드 디렉토리를 설정한다. torrent 가 아직 활성화된 상태가 아닐때만 동작한다.
^s 다운로드 시작. (완료 직전 이라면 해싱 작업을 먼저 시작한다)
^d 다운로드 중지. 혹은 정지된 다운로드를 제고
^r 다운로드와 무관하게 torrent 의 해싱 체크를 시작한다.

대역폭 제한
a/s/d 1/5/50 KB 씩 업로드 대역폭 증가.
z/x/c 1/5/50 KB 씩 업로드 대역폭 감소.
A/S/D 1/5/50 KB 씩 다운로드 대역폭 증가.
Z/X/C 1/5/50 KB 씩 다운로드 대역폭 감소.
※ 대역폭 제한은 단일 torrent 에 대한 제한이 아니라 전역적으로 제한된다.

네비게이션
1. 전역키
^q 프로그램 종료. (중복으로 명령을 내리면 트래커와 주고받는 신호를 무시하고 종료한다.)
up/down torrent 선택
left 이전 화면으로 복귀

2. 메인 뷰
right 다운로드 뷰로 전환
^r 토런트의 해시 체크 시작
+/- 토런트의 우선 순위 변경
l 로그 보기. Space 키로 종료
M-1 모든 다운로드 내역 보기
M-2 이름 순으로 모든 다운로드 내역 보기
M-3 시작된 다운로드 내역 보기
M-4 정지된 다운로드 내역 보기
M-5 완료된 다운로드 내역 보기
M-6 해싱중인 다운로드 내역 보기

3. 다운로드 뷰 키보기
right 토런트 파일 리스트로 전환
left 메인 뷰로 전환
1/2 최대 업로드 조절
3/4 최소 피어수 조절
5/6 최대 피어수 조절
o 트리커 리스트 출력.스페이스바로 한 구룹내의 트래커들을 순환. * 키를 이용해 선택된 트래커 의 활성화 설정을 토글
p 피어와 토런트 정보를 보기
t/T 트래커 요청 시작. 대문자 T를 이용하면 최소 요청 간격을 무시하고 강제로 요청을 할 수 있음.
u 전송 내역 보기
i Chunk 빈도 보기

4. 파일리스트 뷰
left 다운로드 뷰로 전환
space 파일 우선 순위 변경
* 모든 파일의 우선 순위 변경

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 박영창

최근에 달린 댓글

최근에 받은 트랙백

글 보관함