맥북 쓴지도 이제 반년가까이 되가는데... 시간이 지날수록 윈도우를 더 많이 쓰게되더라는... -_-;
그렇다고 내가 얼리가 아니라던지 적응력이 떨어진다던지 하는건 아닌데...
우분투 나오기 전에도 데탑에 리눅스 깔고 영화보고 TV 보고... 그랬는데 쩝;;; (해본분은 알겠지만 우분투 전에는 저거 하나하나가 넘사벽이었다.) 리눅스야 태생이 그런줄 알았으니 이것이 나의 길이구나 하면서 갔지만...
지나고 보니 그냥 남들이 많이쓰는게 제일 좋은 것같이 느껴진다.
이번에 부트캠프 3.1이 공개됐길래 올타꾸나 하구서 Windows 7 을 지원한느 이 녀석을 설치하다가 키보드 드라이버 관련해서 뭔가가 엉킨건지 키보드 먹통되고... 어찌어찌하면서 다시 설치하고 여차저차 하면서 다시 설정하는 과정을 격다가 이렇게 글을 적는다.
이제는 감히 말한다. Xcode 가지고 아이팟 어플 개발할거 아님 맥북사지마 -_- keynote ? 걍 우분투깔고 OpenOffice 에 opengl 플러그인 설치해서 그거써 !!!! 이건 뭐 남들 다 쓰는 윈도우를 리눅스 쓰듯해야하니...
여튼 맥쓰사를 비롯해서 여기저기에서 찾아보면 맥북의 더러운 키보드 배열 (애플은 뭐든지 업계에 통용되는 표준을 무시 :) ) 덕분에 어려움을 격는 사람들이 많이 찾는 Input Remapper / KeyTweak / MKLC 라는 프로그램이 있다.
BUT..... 이 프로그램 만큼 좋은 녀석을 아직 찾지를 못했다.
리매핑 프로그램계의 iptime 같은 녀석이랄까 ??? 한국인 특유의 섬세함이 돋보이는 "이런 기능을 쓸까?" 싶을 정도로 잡스러운 기능과 기능키 동시입력을 지원하는 강력함!!!! 간단한 설정.
제가 일하는 곳의 서버에는 붉은성(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가 이 녀석 때문에 내려갈지 모를 불안감을 안고 가야하는...
정책설정에서 아무래도 예외가 가능하긴 할 것 같은데 - 설마 보안툴인데 예외 처리가 없진 않을테고.. -_- - 단지 설치 운영의 업무가 명확히 구분된 나름 규모가 있는 곳에서는 지금처럼 운영중인 환경상에 저희도 모르는 채로 설치되서 잘되던 프로그램을 안되게 만들어 버리니... 그런게 문제인 것 같습니다.
굳이 스크립트가 왜 필요하다고 생각했을까?? 싶을 정도로 너무나도 간단한 이 한가지 구문으로 결국 문제는 클리어~ 형상이 안부 묻고 일하러 ㄱㄳ
이번일을 격으면서 생각한건데 어떤 질문이나 문제이던지 약간 틀어진 각도에서 문제는 다시 한번 재해석하는 과정을 거쳐야할 것 같다라는 생각을 해본다. 분명히 문제를 다른 각도에서 볼 수만 있다면 정공법을 이용하는 것보다 훨씬 더 편한 방법으로 문제를 해결할 수 있을 것 같다.
최근에 공부를 위해서 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 옵션을 줄때 주의할 점은 추가분이 아니라 만들고자하는 디스크의 총량을 명시한다는 사실입니다.
디스크의 총용량이 18G로 증가했음을 확인할 수 있습니다. 현재까지 만들어진 물리 파티션의 한계는 12기가이구요.
여기서 이제 저희가 해야할 일은 증가된 용량의 크기만큼은 6기가 분량의 디스크 공간을 Physical Volume 으로 만들고 해당 볼륨을 기존에 설정되었던 Volume Group 00 으로 추가하는 작업을 해야합니다. 일단 물리 볼륨을 작업하기 전에 잔여 용량을 파티션으로 작성해야하기 때문에 fdisk 상에서 작업을 합니다.
작업을 마친후에는 리부팅합니다.
더보기
[root@localhost ~]# fdisk /dev/sda
The number of cylinders for this disk is set to 2349.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/sda: 19.3 GB, 19327352832 bytes
255 heads, 63 sectors/track, 2349 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1566 12474472+ 8e Linux LVM
Command (m for help): n Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3 First cylinder (1567-2349, default 1567):
Using default value 1567
Last cylinder or +size or +sizeM or +sizeK (1567-2349, default 2349):
Using default value 2349
Command (m for help): p
Disk /dev/sda: 19.3 GB, 19327352832 bytes
255 heads, 63 sectors/track, 2349 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1566 12474472+ 8e Linux LVM
/dev/sda3 1567 2349 6289447+ 83 Linux
Command (m for help): t
Partition number (1-4): 3 Hex code (type L to list codes): 8e Changed system type of partition 3 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 장치나 자원이 동작 중.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@localhost ~]#
일단 여기까지 마치면 대충 용량을 증설하는 작업이 거의 완료된 거나 마찬가지 입니다.
볼륨그룹에 추가 용량을 더하기 전에 Physical Volume 을 추가하기 위해서 pvcreate 작업을 실시합니다.
추가된 물리 볼륨을 vgextend 를 이용해서 기존의 VolGroup00 추가합니다.
보시는대로 처럼 추가된 물리 볼륨 만큼의 Free PE 가 생겨난 것을 확인할 수 있습니다. 여기에서 이제 논리 볼륨을 증가시키고 실제로 ext3 의 파티션 공간을 늘여주는 작업을 하면 용량 증설 작업이 종료됩니다.
여기까지 완료되면 일단 물리적으로 용량의 증설을 모두 끝난 상태입니다. 다음의 파일 시스템의 영역에서 실제 사용가능한 용량의 범위를 증설하는 작업입니다. 당연히 파일 시스템이 용량 증가하는 방식을 제공해야합니다. 보통 리눅스에서 많이 사용하면 ext2, ext3 와 같은 파일 시스템은 해당 툴이 존재하기 때문에 간편하게 사용가능합니다.
(사용하는 프로그램은 OS의 버전과 파일시스템에 따라서 상이할 수 있습니다. CentOS 5에서 설치했던저는 resize2fs라는 툴을 이용해서 변경하였습니다.)
이상입니다. 대충 이런식인데요 적당히 따라만 해보시면 됩니다. 설마 이런 작업 할일이 많겠습니까? ㅋㅋㅋ
그냥 이런 방식으로 쓸수도 있구나 하고 생각해두세요.
요즘 db2 공부 때문에 리눅스용 db2 설치를 위해서 간만에 데스크탑에 우분투를 설치했다. 메인으로 리눅스를 올린건 2학년 겨울 방학때 이후로 처음이니 대략 3년 정도만인 듯하다. 당시에는 우분투의 전신인 데비안을 이용해서 TV카드까지 잡고서 나름 3개월 넘는 기간동안 열심히 리눅스 공부했었는데... 지금 생각해보면 뻘짓이었다는 생각이든다.
어쨋든 요즘 우분투를 설치하니 정말로 많은 커스터마이징이 이루어져서 어지간한 작업은 정말로 우분투 만으로도 가능할 정도가 돼었다고 할만했다. 하지만 그래도 여전히 우분투 환경만으로는 해결이 안돼는 업무는 많은지라... 어쩔 수 없이 가상 머신 프로그램인 버박(virtualbox)를 이용해서 게스트 OS를 윈도우로 설치를 시도했다. 이것도 당시와는 많이 달라진 것인데... 가상 머신 프로그램을 이렇게 쉽고 간단히 올릴 수 잇고, 높은 퍼포먼스가 나온다는 사실은 상당히 놀라운 일이다.
문제는 이 녀석이 왠일인지 usb 디바이스를 정상적으로 잡지를 못한다는 것이다. 그래서 구글링을 해보니 역시나 해결책이 존재했다.
물리적구조 <=> 논리적구조
성능 : 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 : 공간할당
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 : 파티션 (확장가능)
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 분산효과
==================
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)
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 서비스에서 멈춘경우
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가 됨
==========
암호화 작업들
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
공유선언
#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
=================
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 로 모아 둘수 있음
바로 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를 이용하면 최소 요청 간격을 무시하고 강제로 요청을 할 수 있음.