'내가쓰는리눅스강좌'에 해당되는 글 29건

  1. 2010.04.19 리눅스 시스템의 부팅시 파일무결성 체크 강제로 하기
  2. 2009.11.24 27. CentOS 에서의 한글 설정 3
  3. 2009.11.23 26. ethtool 사용하기 spped 와 duplex 변경 6
  4. 2009.11.05 25. sort 명령어 2
  5. 2009.09.15 24. tar 압축파일에 관해서
  6. 2009.04.23 23. man 페이지 내용을 파일로 보자. 2
  7. 2009.01.30 22. lame : mp3 인코더
  8. 2009.01.21 21. 부팅시 실행레벨설정 ( X-window 로 또는 터미널으로) 2
  9. 2009.01.20 20 . SSH 터미널의 프롬프트에서 절대경로 표시법
  10. 2008.11.03 19. 콘솔 모드에서의 해상도 조절 1
  11. 2008.07.04 네트워크 패킷 분석툴 : tethereal ?? ethereal ?? wireshark?? 1
  12. 2008.07.03 18. CentOS 에서 Xmanager 를 위한 설정하기 2
  13. 2008.06.16 17.1 네트워크 개념 잡기 IP/NETMASK/DefaultGW/DNS 5
  14. 2008.06.16 17. 명령어 모드에서 네트워크 설정 ifconfig 와 route 2
  15. 2008.05.22 15. 삼바서버 설정하기 ( 초간단) 7
  16. 2008.05.19 14. history 에 날짜를 보이도록
  17. 2008.05.15 13. 쓸데없는 파일 용량 줄이기
  18. 2008.05.09 12. 리눅스에 대한 좋은 링크 2
  19. 2008.05.07 11. 파일 개수 세기 3
  20. 2008.04.21 10. 시간 동기화 rdate 와 다른 NTP 6
2010. 4. 19. 15:27

리눅스 시스템의 부팅시 파일무결성 체크 강제로 하기

리눅스 서버를 강제로 전원버튼을 눌러서 셧다운 시킨후
다시 부팅시키거나 할 때에는

리눅스 부팅시 파일 무결성 체크를 할 것인지 물어보게 되어 있습니다.

위의 경우처럼 강제로 서버를 리부팅했을때에는 root 디렉토리 밑에
(1) 숨김파일로 .autofsck 라는 파일 생성되고 이것은 다음 부팅시에 아래의 메시를 보이면서 5초안에 Y 를 누르면 파일 무결성 체크를 진행하게 됩니다.
-rw-r--r--    1 root root          0 Apr  1 17:33 .autofsck

Press Y within 3 seconds to force file system integrity check
(2) 또는 강제로 root 디렉토리 밑에 forcefsck 라는 파일을 만들어두면 다음 부팅시에 자동으로 파일무결성 체크를 진행하게 됩니다.
[root@localhost /]# cd /
[root@localhost /]# ls -l f*
-rw-r--r-- 1 root root 0  4월 19 15:17 forcefsck

reboot 명령어를 했을 때 다음 부팅시 강제체크한다는 메시지를 볼 수 있을 겁니다.


여기서 팁은 강제로 파일 무결성을 체크하도록 하는 것입니다.
실제로 리눅스가 부팅되는 과정에서 /etc/rc.d 밑의 rc.sysinit 파일이 수행되게 되는데
이 스크립트 안에 관련된 내용이 있습니다.
이것을 수정해야 하고 /forcefsck 파일을 touch /forcefsck 명령어로 파일만 생성시켜 주면됩니다.

[root@localhost rc.d]# cd /etc/rc.d
[root@localhost rc.d]# ls -l rc.sy*
-rwxr-xr-x 1 root root 27420  3월  6  2009 rc.sysinit

서버가 리부팅되고 나서는 rc.sysinit 스크립트안에 /.autofsck 와 /forcefsck 파일 두개를 지우는 내용이 포함되어 있으므로, 서버가 리부팅될때마다 무조건 체크하기 위해서는 /forcefsck 파일을 지우는 부분을 rc.sysinit 스크립트안에서 지워줘야 합니다.

/etc/rc.sysinit 파일 내용중

# Clean out /.
rm -f /fastboot /fsckoptions /forcefsck /.autofsck /forcequotacheck /halt \
        /poweroff &> /dev/null

위 부분을 아래와 같이 수정

# Clean out /.
rm -f /fastboot /fsckoptions /.autofsck /forcequotacheck /halt \
        /poweroff &> /dev/null

이렇게 되면 다음 리눅스 서버가 부팅 될 때마다 무조건 파일무결성 체크를 진행하게 됩니다. ^^

※ 참고적으로 fsck 라는 명령어는 파일시스템을 unmount 한 상태에서 진행해야 됩니다. !!
만약 마운트 되어 있는 상태의 파티션에다가 fsck (파일시스템체크) 명령어를 내리게 되면
그 파티션은 날라갑니다 !! 정말 주의 해야 합니다.





2009. 11. 24. 13:21

27. CentOS 에서의 한글 설정

일단 기본적으로 CentOS 를 설치하게 되면
기본 언어를 영어로 설정했다면 쉘 역시 영어로 설정이 된다.

이것을 아예 한글로 변경하거나 또는 로그인쉘에서만 따로 한글로 사용하도록 설정하는 방법이 있다.

1. 시스템 전체의 언어를 한글로 변경

root 로 로그인 이후  /etc/sysconfig/i18n 파일을 아래와 같이 수정한다.
만약을 위해 다른 이름으로 백업을 해둔다음에 진행하자.

[root@localhost ~]# more /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
SUPPORTED="en_US.UTF-8:en_US.en:ko_KR.UTF-8:ko_KR.eucKR:ko_KR:ko"


2. 로그인쉘 상에서의 특정 유저만 한글로 표현 ( 나머지 유저는 영어로 그대로 )

일단 그 유저의 특정유저로 로그인하고 나서 hidden file ( 숨김파일은 파일이름 앞에 점하나가 붙는다 ) 인
.bash_profile 안에 다음과 같은 라인을 추가시킨다.
( 숨김파일의 리스트를 보기 위해서는 ls -al 로 확인한다 )

그러면 그 유저로 로그인했을 때는 터미널 상에서 한글이 제대로 표현된다.
파일명이 한글인 경우 잘 표현되는지 확인하면 되겠다.

export LANG=ko_KR.eucKR


3. 파일질라 ( Filezilla ) 로 접속시 한글이 보이지 않거나 깨지는 현상

사이트관리자에서 <문자셋> 탭에서
<사용자정의문자셋 사용>을 클릭하고
아래 칸에 CP949 로 설정을 하고 다시 접속하면 한글이 잘 보이게 된다.

참고 : 파일질라 다운받는 곳은 www.filezilla-project.org
2009. 11. 23. 00:17

26. ethtool 사용하기 spped 와 duplex 변경


ethtool 을 사용해서 네트워크 포트의 speed duplex autonego 를 조정할 수 있다.

[root@localhost ~]# ethtool eth1
Settings for eth1:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Advertised auto-negotiation: No
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 32
        Transceiver: internal
        Auto-negotiation: off
        Supports Wake-on: pumbg
        Wake-on: d
        Current message level: 0x00000007 (7)
        Link detected: no

[root@localhost ~]# ethtool -s eth1 speed 10 duplex full autoneg on
[root@localhost ~]# ethtool eth1
Settings for eth1:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 10Mb/s
        Duplex: Half
        Port: MII
        PHYAD: 32
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: d
        Current message level: 0x00000007 (7)
        Link detected: no

여기서 ethtool 은 해당되는 네트워크 포트가 리눅스 커널에서 어떻게 인식되어서 동작하는지를 확인할 수 있다.

위의 방법은 임시로 적용이 된 것이고 OS가 리부팅되면 다시 초기화되어버리므로

아예 /etc/sysconfig/network-scripts 밑에 있는 ifcfg-eth0 파일에 아래 라인을 넣어줘서 

OS가 리부팅되도 계속 적용이 되도록 할 수 있다.



DEVICE=eth0

BOOTPROTO=dhcp

ONBOOT=yes

TYPE=Ethernet

ETHTOOL_OPTS="speed 100 duplex full autoneg off"


ETHTOOL_OPTS 의 안의 필드를 보면
speed 뒤의 숫자는 100 이면 100M 를 지정하고
1000 이면 1000M 즉 1G 를 정해준다.

네트워크 인터페이스 드라이버에 따라 저 옵션이 적용될 수도, 안 될 수도 있다.
그럴땐 mii-tool 이란 명령어로 되는지 확인 필요.

Duplex 값은 half 와 full 이 있는데 한국말로는 반이중 / 전이중 이런 어려운 용어가 있다.
하지만 Full 이 좋은 것은 당연지사.

마지막의 autoneg 는  auto-nego 를 스위치와 하지 않도록 off 한다는 의미이다.
보통 저렇게 리눅스 서버에서 자동협상 기능을 끈다면 스위치쪽에서도 동일한 speed 와 duplex 를 맞쳐서 사용하는 것이 정석이다.

저 서버에 연결된 상위의 스위치 ( 시스코이든 3COM 이든 ) 에서도 해당 포트에 static 으로 고정되게 speed 와 duplex 를 서버에 설정해준것과 동일하게 맞춰야 한다.


2009. 11. 5. 21:55

25. sort 명령어


sort 는 파일을 정렬하거나 중복을 제거 할 수도 있는 강력한 명령어이다.

1. sort  a.txt

2. sort -r a.txt
역순(오름차순) 으로 정렬

3. sort -k 2 a.txt
두번째 필드를 기준으로 내림차순으로 정렬

4. sort -u a.txt
내림차순으로 정렬하면서 중복된 라인을 제거

응용

5. sort -u -k 2 a.txt
두번째 필드 기준으로 내림차순 정렬하면서 중복라인 제거

6. sort -u -r -k 2 a.txt
두번째 필드 기준으로 오름차순 정렬하면서 중복라인 제거


2009. 9. 15. 14:57

24. tar 압축파일에 관해서


자 이젠 tar 파일을 보게 되는 순간 당황해하지 말고
단순히 (?) 압축파일이라고 생각하자.  윈도우에서 흔히 보던 zip 이라는 압축형식이 tar 로 달려졋을 뿐이다.

우선 tar 압축파일은 형식이 여러종류이며 그 때마다 푸는 방법도 달라져야 한다.
파일의 확장자를 우선 잘 보도록 하자

tar / tar.Z / tar.gz  등등 여러 파일이 있다.

구분을 해보면 tar 란 단순히 여러파일을 하나의 파일로 합치기만 했을 뿐이고,
그 외의 것들은 합친 하나의 tar 파일을  압축을 해놓은 것이다.
그런 파일들의 경우에는 우선 압축해제를 하고 나서 tar 를 풀어서 원래의 원본파일 여러개로 되돌리는 순서가 필요하다 .

예를 들어 tar 파일의 내용을 압축을 풀지 않고 보려면
tar -tvf TEST.tar

압축을 해제 하지 않고도 미리 tar 안의 어떤 파일들이 압축되어 있는지 확인이 가능하다.

첫번째로 tar 압축  그다음에 묶고 나서 풀어보자
만약 a.txt , b.txt, c.txt 라는 파일이 있다면
ls
a.txt  b.txt  c.txt
[bjh@localhost test2]$ tar cvf TEST.tar ./*.txt
./a.txt
./b.txt
./c.txt
[bjh@localhost test2]$ ls -ltr
합계 40
-rw-r--r-- 1 bjh users     3 12월  3 10:20 a.txt
-rw-r--r-- 1 bjh users     3 12월  3 10:21 b.txt
-rw-r--r-- 1 bjh users     4 12월  3 10:21 c.txt
-rw-r--r-- 1 bjh users 10240 12월  3 10:21 TEST.tar
[bjh@localhost test2]$ tar cvfz TEST.tar.gz ./*.txt
./a.txt
./b.txt
./c.txt
[bjh@localhost test2]$ ls -ltr
합계 48
-rw-r--r-- 1 bjh users     3 12월  3 10:20 a.txt
-rw-r--r-- 1 bjh users     3 12월  3 10:21 b.txt
-rw-r--r-- 1 bjh users     4 12월  3 10:21 c.txt
-rw-r--r-- 1 bjh users 10240 12월  3 10:21 TEST.tar
-rw-r--r-- 1 bjh users   161 12월  3 10:21 TEST.tar.gz


세개의 텍스트파일이 하나의 tar 파일로 묶어진 것을 볼 수 있다. 
( 압축이란 말은 잘 어울리지 않는다 ! 왜냐면 세개 파일의 크기를 더한 것이 tar 파일의 크기가 되기 때문에
실제로 압축이 일어난 것은 아니다. 그래서 묶는다란 표현을 난 더 좋아한다 )

그럼 압축을 해보도록 하자
압축하는 방식은 여러가지를 선택할 수 있다.
위에서 내렸던 명령어 중에 tar -cvfz  라는 명령어는 tar 로 우선 묶고 나서 gzip 으로 압축을 진행하는 것이다.

따로 따로 명령어를 두번 내려도 된다!
tar cvf TEST.tar ./*.txt
gzip TEST.tar

[root@localhost test4]# ls -l
total 0
-rw-r--r-- 1 root root 0 Dec 18 12:33 1.txt
-rw-r--r-- 1 root root 0 Dec 18 12:33 2.txt
-rw-r--r-- 1 root root 0 Dec 18 12:33 3.txt
[root@localhost test4]#
[root@localhost test4]# tar cvf TEST.tar ./*.txt
./1.txt
./2.txt
./3.txt
[root@localhost test4]#
[root@localhost test4]# ls -l
total 12
-rw-r--r-- 1 root root     0 Dec 18 12:33 1.txt
-rw-r--r-- 1 root root     0 Dec 18 12:33 2.txt
-rw-r--r-- 1 root root     0 Dec 18 12:33 3.txt
-rw-r--r-- 1 root root 10240 Dec 18 12:33 TEST.tar
[root@localhost test4]#
[root@localhost test4]# gzip TEST.tar
[root@localhost test4]#
[root@localhost test4]# ls -l
total 4
-rw-r--r-- 1 root root   0 Dec 18 12:33 1.txt
-rw-r--r-- 1 root root   0 Dec 18 12:33 2.txt
-rw-r--r-- 1 root root   0 Dec 18 12:33 3.txt
-rw-r--r-- 1 root root 142 Dec 18 12:33 TEST.tar.gz

위와 같이 tar 로 묶고 나서 gzip 으로 압축을 한 것을 볼 수 있다.
이렇게 압축된 것을 풀기 위해서는
tar xvf TEST.tar.gz 라고 입력한다.

[root@localhost test4]# tar -xvf TEST.tar.gz
./1.txt
./2.txt
./3.txt
[root@localhost test4]#
[root@localhost test4]# ls -l
total 4
-rw-r--r-- 1 root root   0 Dec 18 12:33 1.txt
-rw-r--r-- 1 root root   0 Dec 18 12:33 2.txt
-rw-r--r-- 1 root root   0 Dec 18 12:33 3.txt
-rw-r--r-- 1 root root 142 Dec 18 12:33 TEST.tar.gz



위에서 tar cvfz 라는 옵션을 사용해서 tar로 묶고 다시 gunzip 으로 압축을 한것이 TEST.tar.gz 파일이다.

파일 크기를 비교해보면 tar.gz 파일이 훨씬 작다는 것을 알 수 있다.


### 이미 존재하는 tar 파일에 추가로 파일을 넣기 
tar uvf test.tar ./A

test.tar 라는 파일에 추가로 A 라는 파일을 넣는 옵션은 -u  즉 update 옵션이다.



※ 유닉스에서 사용되는 tar.Z 파일 형식

아래는 유닉스에서 사용되는 압축으로 확장자 명은 tar.Z 파일이다.
이것은 tar 로 묶은뒤에 compress 라는 유틸을 사용해서 압축을 한 파일이다.
이것을 푸는 것은 유닉스에서 uncompress 라는 명령어로 풀수있다.

compress TEST.tar.Z TEST.tar


 
2009. 4. 23. 12:49

23. man 페이지 내용을 파일로 보자.

솔직히 수많은 man 페이지 내용을 일일이 읽어보지는 않으나
필요할때가 가끔 있어서 읽어야 하는데 막상 터미널 창에서는 읽기가 왠지 짜증이난다.

그럼 파일로 저장해보면 어떨가? 리다이렉트를 이용한다면 쉽지만
또 막상 해보면 많은 이상한 문자들이 나오게 되는 경우를 보게 된다.

man top > top.txt

그러면 이럴 땐 어떻게 해야 할까?

여러가지 meta 문자나 그런 것을 읽기 편하게 하도록 하기 위해선 다음과 같이 해야 한다.

man top | col -b > top.txt


col 이 무엇일까?
NAME
     col - 입력으로부터 줄 바꿈문자(line feed)를 바꾸는 필터

SYNOPSIS
     col [-bfx] [-l num]

DESCRIPTION
     Col 필터는 "\n\r" 문자를 "\n" 문자로 바꾸어 주는 필터이다.     또한 공백문자
     를 탭문자로 바꾸고, 백스페이스 문자를 없애는 기능을한다. 이 필터는
     nroff(1) 와 tbl(1) 출력물의 처리에 아주 유용하게 쓰인다.  (이 두 풀그림에
     의해서 만들어지는 대표적인 출력이 man의 cat 파일이다.  즉, cat 파일을 단
     순 텍스트 파일로 바꾸는데 아주 유용하게 쓰인다.)

     Col 필터는 표준 입력으로 받아서 표준 출력으로 보낸다. (즉, 파일로 저장하
     려면, 파이프와 방향전환이 필요하다.)

     여기서 사용되는 옵션은 다음과 같다:

     -b        어떠한 백스페이스 문자도 출력하지 않는다.  이것은 팩스페이스 문자
        와 연결되는 마지막 문자만 출력한다.

     -f        밑줄 속성을 가진 문자열을(Forward half line feed) 변환하지않는다.
        일반적으로 밑줄 속성을 가진 문자열들은 다음줄에서밑줄(-)이 나타난
        다.(그런데, 실질적으로 colcrt(1) 필터를사용하지 않고는 제대로 이
        기능이 나타나지 않더군요. - 옮긴이 말)

     -h        여러 공백문자를 탭문자로 바꾼다.

     -x        여러 공백문자들을 그대로 둔다.

     -lnum  메모리에 한번에 둘수 있는 최대 줄수를 num 줄로 한다.  초기값은 128
        줄이다.

     다음은 col 명령에서 변환대상이 되는 각종 문자들이다:

     ESC-7          reverse line feed (escape then 7)
     ESC-8          half reverse line feed (escape then 8)
     ESC-9          half forward line feed (escape then 9)
     backspace          moves back one column (8); ignored in the first column
     carriage return  (13)
     newline          forward line feed (10); also does carriage return
     shift in          shift to normal character set (15)
     shift out          shift to alternate character set (14)
     space          moves forward one column (32)
     tab          moves forward to next tab stop (9)
     vertical tab     reverse line feed (11)

     윗 문자들과 영문, 숫자, 글쇠판에 있는 각종 기호를 제외한나머지 문자들은
     모두 무시되어버린다.  (즉 한글은 완전 무시되어버린다. - 옮긴이 말)

관련 항목
     expand(1), nroff(1), tbl(1)

HISTORY
     col 명령은 Version 6 AT&T UNIX에서 처음 사용되었다.




2009. 1. 30. 14:08

22. lame : mp3 인코더

lame  은 wav 파일을 mp3 형식으로 인코딩 하는 프로그램이다.


리눅스 상에서 변경할 수 잇으며 윈도우 용으로도 이미 프로그램이 나와 있다.

리눅스 상에서는 우선  rpm 이 설치되어있는지 확인하고, 없다면  soureforge  에서 다운 받아 설치하면 된다.

사용법은 다음과 같다.

lame -h -b 128  original.wav original.mp3

여기서 옵션 값은 -h  : higher quality  로
-b : 비트레이트를 선택한다  비트레이트는 1초당 재생하는데 필요한 데이타의 크기를 정해준다.
      이 값을 작게하면  mp3 로 변환시에 좀 더 적은 용량으로 mp3 를 만들 수 있다.

자세한 다른 옵션 값이 궁금하다면 man 을 읽어보자!!

man lame


비트레이트에 대해 궁금하다면 다음의 링크 확인 .

http://k.daum.net/qna/openknowledge/view.html?qid=3Fgez&l_cid=


lame --help
LAME 32bits version 3.98.2 (http://www.mp3dev.org/)

usage: lame [options] <infile> [outfile]

    <infile> and/or <outfile> can be "-", which means stdin/stdout.

RECOMMENDED:
    lame -V2 input.wav output.mp3

OPTIONS:
    -b bitrate      set the bitrate, default 128 kbps
    -h              higher quality, but a little slower.  Recommended.
    -f              fast mode (lower quality)
    -V n            quality setting for VBR.  default n=4
                    0=high quality,bigger files. 9=smaller files
    --preset type   type must be "medium", "standard", "extreme", "insane",
                    or a value for an average desired bitrate and depending
                    on the value specified, appropriate quality settings will
                    be used.
                    "--preset help" gives more info on these

    --longhelp      full list of options

    --license       print License information



-b n   For MPEG1 (sampling frequencies of 32, 44.1 and 48 kHz)
              n = 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320

              For MPEG2 (sampling frequencies of 16, 22.05 and 24 kHz)
              n = 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160

              Default is 128 for MPEG1 and 64 for MPEG2.



첨부파일은 CENTOS 에서의 lame 설치용 rpm 이다.
2009. 1. 21. 12:32

21. 부팅시 실행레벨설정 ( X-window 로 또는 터미널으로)


리눅스는 /etc/inittab 파일의 실행레벨 설정으로 처음 부팅할때

X-window GUI( Graphic User Interface) 환경으로 부팅할 것인지

Terminal CLI(Command Line Interface) 환경으로 부팅할 것인지 결정이 가능하다 .


[root@localhost ~]# more /etc/inittab
#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
#

# Default runlevel. The runlevels used by RHS 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)
#
id:3:initdefault:



여기에서 설치를 GUI 환경으로 햇다면 id : 5 라고 써 있을 것이고
이것을 3으로 고치면
CLI 환경으로 부팅이 가능하다 .


참고로 시스템 종료시에  shutdown -h now 라는 복잡한 명령보단

init 0

이라고 치면 된다. !! ㅋ

2009. 1. 20. 16:23

20 . SSH 터미널의 프롬프트에서 절대경로 표시법

리눅스의 기본 bash 프롬프트 상태는 [사용자@호스트이름 ~]# 의 형태를 가진다.

초보자가 아닌 사람에게는 괜찮을지 몰라도
초보자에게는 늘 경로를 보여주는 것으로 수정을 해도 좋을 듯 하다 .

[root@localhost ~]# cd /home
[root@localhost ~]# pwd
/home

다음과 같이 하게 되면

[root@localhost ~]#SAVE=$PS1
[root@localhost ~]#PS1="[\u@\h \w]# "
[root@localhost ~]# cd /home/
[root@localhost /home]# ls

이렇게 절대 경로가 프롬프트 상에 띠워져 좀 더 자신의 경로를 확인하기 쉽게 된다.

물론 여기에 여러가지 넣는 것이 가능하다 .
아래를 참고

\a  ASCII 종소리문자 (07)
\d  "요일 달 날짜" 형식의 날짜표시 (예 "Tue May 26" )
\e  ASCII 의 escape 문자
\h  첫 번째 "." 까지의 hostname
\H  hostname
\n  새로운 줄 바꾸기
\r  carrage return
\s  쉘의 이름, $0 의 basename
\t   24-시간으로 현재 시각 HH:MM:SS 형식
\T   12-시간으로 현재시각  HH:MM:SS 형식
\@   12-t시간으로 현재 시각 , 오전 /오후 형식
\u     현재사용자의 username
\v    bash 의 버전
\V    base 의 배포, 버전 + 패치수준
\w   현재 작업 디렉토리
\W   현재 작업 디렉토리의 basename
\!    현재 명령어의 history 번호
\#   현재 명령어의 command 번호
\$   유효한 UID 가 0 이면 # 을 , 그렇지 않으면 $ 을 표시
\nnn   8진수 nnn 에 해당하는 문자
\\     backslash
\[      터미널조정 sequence 를 프롬프트에 끼워넣기 위해 사용될수 있는 non-printing 문자의 시작
\]      non-printing 문자의 끝

2008. 11. 3. 16:49

19. 콘솔 모드에서의 해상도 조절


리눅스 박스의 부팅시에 보이는 여러 데몬의 실패 여부를 알아보기에는 기본 해상도 640x480 은 너무나 적고
금방 지나가 버린다.
따라서 다음과 같이 설정해준다.

grub.conf 에서

부팅되는 커널을 적어주는 가장 긴 줄에서 맨 마지막에 vga=791 이라고 추가해주고 저장한다

다음 부팅중간에 보이는 콘솔 화면의 해상도가 1024x768 로 변경되어 보인다.

물론 CTL+ALT+F1 부터 F6 까지의 콘솔 모드의 해상도 역시 같이 변경되어진다.

 color

640 x 480 

 800 x 600

1024 x 768 

1280 x 1024 

256

0x301=769

0x303=771

0x305=773 

0x307=775

32k

0x310=784

0x313=787

0x316=790

0x319=793

64k

0x311=785

0x314=788

0x317=791

0x31A=794

16m

0x312=786

0x315=789

0x318=792

0x31B=795


이렇게 하고 저장하면 된다.

2008. 7. 4. 11:14

네트워크 패킷 분석툴 : tethereal ?? ethereal ?? wireshark??

자 리눅스에서 네트워크 패킷을 잡기 위해서는

이전에는 주로 ethereal 을 사용했지만 이게 wireshark 로 바뀌면서

rpm 이름도 wireshark 로 바뀌게 되었다.

그럼 우선 ethereal 을 사용하는 방법을 알아보자.

1. 단순히 모든 패킷 잡기

터미널 창에서 tshark 를 치면 바로 잡기 시작


2. 좀더 자세히 패킷 잡기

tethreal 을 사용하는 방법이다. ( text+ethereal 의 줄임말 인듯 ) 
CLI 에서 패킷을 잡는 방법이다. 

tethereal -i eth0 -w test.cap -R "sip"

여기서 - i 옵셥은 네트워크 인터페이스 중에서 어느 것을 사용해서 잡을 것인지를 선택하는 옵션
- w 옵션은 잡은 패킷을 어느 이름을 가진 파일로 저장하는 것을 지정하는 옵션
-R 은 뒤에 오는 쌍따옴표 안에 필터를 지정해서 그 필터를 읽어서 그 필터에 해당하는 것만 패킷을 저장하는 것이다.
( 저장 되는 곳은 바로 위의 명령을 실행한 디렉토리에 저장된다 )

3. SIP 와 H323 의 ras 메세지를 같이 잡기 위해서는 다음과 같이 한다.

tethereal -i eth0 -w test2.cap -R "sip or h225"

자세한 옵션 설명은 다음의 링크에서 자세히 설명되어 있다.

http://ethereal.secuwiz.com/docs/man-pages/tethereal.1.html


4. CentOS 리눅스에서는 다음과 같이 설치한다.

ethereal 을 설치하면 tethereal 을 사용할 수 있다.
실제로 설치하는 파일이름은 wireshark 이다. ( ethereal 의 후속버전이 이름이 바뀌었다 wireshark 로 )

[root@localhost home2]# yum install ethereal
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.aussiehq.net.au
 * updates: centos.mirror.aussiehq.net.au
 * addons: centos.mirror.aussiehq.net.au
 * extras: centos.mirror.aussiehq.net.au
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package wireshark.i386 0:1.0.8-1.el5_3.1 set to be updated
--> Processing Dependency: libsmi.so.2 for package: wireshark
--> Running transaction check
---> Package libsmi.i386 0:0.4.5-2.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================
 Package                         Arch                       Version                                Repository                  Size
====================================================================================================================================
Installing:
 wireshark                       i386                       1.0.8-1.el5_3.1                        base                        11 M
Installing for dependencies:
 libsmi                          i386                       0.4.5-2.el5                            base                       2.4 M

Transaction Summary
====================================================================================================================================
Install      2 Package(s)        
Update       0 Package(s)        
Remove       0 Package(s)        

Total download size: 13 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): libsmi-0.4.5-2.el5.i386.rpm                                                                           | 2.4 MB     00:10    
(2/2): wireshark-1.0.8-1.el5_3.1.i386.rpm                                                                    |  11 MB     00:20    
------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                               406 kB/s |  13 MB     00:32    
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libsmi                                            [1/2]
  Installing     : wireshark                                         [2/2]

Installed: wireshark.i386 0:1.0.8-1.el5_3.1
Dependency Installed: libsmi.i386 0:0.4.5-2.el5
Complete!



'VoIP 이야기' 카테고리의 다른 글

큐북 (QBOOK) 웹 드뎌 스타트  (7) 2008.12.31
1. G729 코덱과 G729A / G729B  (0) 2008.09.11
2008. 7. 3. 11:53

18. CentOS 에서 Xmanager 를 위한 설정하기

리눅스의 X 윈도우를 반드시 리눅스 시스템 앞에 앉아서 사용해야만 하는 불편을 덜어 주는 프로그램들이 있습니다. 쉽게 말하자면, 리눅스의 X 윈도우를 MS windows 운영체제에서도 사용할 수 있는 것이지요. 이처럼, 외부에서 X윈도우를 사용할 수 있도록 도와 주는 대표적인 프로그램은 허밍버드사에서 나온 Exceed(엑시드), 국내 업체인 넷사랑에서 나온 Xmanager 라는 프로그램이 있습니다.

[출처] Xmanager를 이용하여 리눅스 연결하기 |작성자 메저리그

실제로 CentOS 5 version 을 설치한 PC 로 의 설정을 해보도록 하자


우선 GDM 이라는 rpm 이 설치되어 있는지 확인

rpm -qa | grep gdm

GDM version 확인

gdm --version
GDM setup 을 실행
gdmsetup

나오는 창에서 보안(Security)탭에서
원격 관리자 로그인 허용 탭에 체크 Allow remote system administrator login
사용자 삽입 이미지


만약 활성화가 되어 있지 않다면 <원격> 탭에서 Style 부분에서 Same as local 을 선택해주면 선택할 수 있게 활성화가 된다.
사용자 삽입 이미지

원격으로 Xmanager 를 사용해서 접속해보자.


2008. 6. 16. 14:28

17.1 네트워크 개념 잡기 IP/NETMASK/DefaultGW/DNS

네트워크

흔히 말하는 네트워크주소 흔히들 IP 주소라고 하지요
과연 여러분이 사용하는 인터넷은 어떻게 구성이 되어 있을 까요?

가장 흔항 예를 들어 공유기를 설치해서 사용하고 있다고 합시다.

공유기는 두 종류의 포트를 가지고 있습니다.

WAN : 외부의 공인 아이피를 가지는 포트이죠 ( ISP 인터넷제공업체로부터 들어오는 라인을 여기에 연결)
LAN : 공유기 밑에 붙이는 컴퓨터들을 주로 연결합니다..

WAN 은 복잡하니까 간단히 LAN 을 예로 들어서 살펴봅니다.

공유기의 설정화면을 들어가보면 보통 다음과 같이 LAN 네트워크가 구성되어 있습니다.


공유기의 IP 주소 : 192.168.0.1
LAN 에 사용가능한 아이피 : 192.168.0.2 ~ 192.168.0.254
NETMASK : 255.255.255.0

공유기가 중요한게 아니라 LAN 밑의 컴퓨터 구성이 중요하겠죠

그럼 PC 1 이라 가정하고 아이피는 192.168.0.2 를 가지도록 설정해서 설명하죠

아이피 : 192.168.0.2
서브넷마스크 : 255.255.255.0
디폴트게이트웨이 : 192.168.0.1
DNS : 168.126.63.1


이렇게 고정아이피로 설정을 한 경우에 설명들어갑니다.

(1) 서브넷 마스크 란 ?  이건 머 커다란 네트워크를 조그만한 여러개의 작은 네트워크로 구분해서 사용하기 위해서 필요한 값이라고 생각하면 됩니다. 그러면 왜 커다란 네트워크 한개로 사용하지 굳이 작은 여러개로 나눠서 사용하느냐? 그건 바로 뒤에 설명할 브로드캐스팅 이나 아니면 상업적 용도로 나눠서 팔기 위해서 입니다.

(2) 브로드캐스팅 이란 ? 브로드캐스팅은 하나의 네트워크 망 안에서 그 안에 연결된 모든 PC 에게 메세지를 뿌리는 것이라고 간단히 생각할 수 있습니다. 예를 들어 PC 의 이름이 test 라는 PC 를 찾고 싶다면 192.168.0.255 라는 브로드캐스팅 주소로 < test 란 PC 는 응답하라 !! > 라는 메세지를 네트워크 전체로 뿌리는 거죠.
즉 방송(broadcast) 한다고 생각 하심 쉬울 겁니다. 물론 test 가 아닌 다른 PC 들은 메세지를 무시하게 되고
정작 당사자인 test 라는 PC 는 이 메세지에 다시 반응해서 < 나(test)는 192.168.0.2 라는 아이피를 가지고 잇으니 이 아이피로 메세지를 보내라 !! > 라고 다시 응답하게 되죠 . 그 뒤로 아이피로 찾아가기 때문에 브로드캐스팅은 사용하지 않지요

앞에서 서브넷을 나누지 않고 사용하는 커다란 네트워크가 있따고 가정하면
이것은 브로드캐스팅 메세지들이 차지하는 대역폭 때문에 실제로 데이터가 왔다갔다 하는 메세지들이 가지를 못하는 상황이 벌어질 수도 있는 것이죠.

(3) 디폴트게이트웨이 란 ? 서브넷이 나눠져 있는 네트워크 이므로 다른 네트워크로 가기 위해서는
거쳐가는 관문이 필요합니다. 그게 바로 디폴트게이트웨이 라고 생각하시면 됩니다.
예를 들어서 지금 공유기 밑의 PC 에서 외부의 포탈 사이트로 웹접속을 하기 위해서는
다음의 순서로 패킷이 진행됩니다.
( 이런 것을 보시려면 CMD 창에서 tracert 라는 명령어로 확인이 가능합니다 )

- pc 의 주소 : 192.168.0.2
- 공유기의 주소 : 192.168.0.1
- 중간의 네트워크 망들의 라우터 ( 여러개를 거치게 됩니다 )
- 최종목적지 : 포탈의 웹서버

그러면 LAN 밑의 PC 입장에서는 공유기의 아이피주소가 바로 디폴트게이트웨이가 되는 것이죠.

(4) DNS 란 ? 간단히 말해서 도메인네임서버의 준말이고 이것은 영문(또는한글)주소를 아이피주소로 바꿔서 PC에 알려주는 역할을 합니다.

익스플로러 주소창에 www.tistory.com 를 주소창에 쓰고 엔터를 눌렀을때
컴퓨터는 이것이 어느 아이피로 가야 할지 모릅니다. 그래서 DNS (도메인네임서버) 에 물어보죠.
< 이런 주소는 어느 아이피로 가야하느냐?  >
그럼 DNS 가 바로 응답을 보내주죠
< 아이피는 xxx.xxx.xxx.xxx 이다 >
그러면 PC 는 영어가 아닌 숫자로 된 아이피 주소로 접속을 하게 되고
포탈의 웹서버가 웹페이지를 띄워줘서 여러분이 볼 수 있게 됩니다.

DNS는 공유기 주소로 하거나 아니면 KT 또는 하나로 등등에서 제공하는 DNS 주소를 적어주셔도 무방합니다.


머 간략한 설명이므로 이해 안가면 책을 보세요 .ㅋㅋ




2008. 6. 16. 09:22

17. 명령어 모드에서 네트워크 설정 ifconfig 와 route

물록 GUI ( graphic user interface ) 에서 네트워크의 설정이 훨씬 쉽다.
마우스 클릭으로 하면 되니까.

하지만 원격 시스템의 경우 VNC 접속조차 되지 않으면 명령어로 해야 한다.
SSH 콘솔 상에서의 설정을 살펴보자

우선 기본적으로 다음의 위치에 ifcfg-eth0 과 ifcfg-eth1 을 살펴보도록 하자 .
랜이 1 개라면 eth0 파일만 존재한다 .

/etc/sysconfig/network-script/

윈도우의 ipconfig 와 비슷한 명령이 바로 ifconfig 이다 .

ifconfig 로는 단순히 모든 eth 디바이스의 아이피 정보를 확인할 수 있지만 ifconfig 명령어로 직접
아이피를 설정할 수 있다.
예를 들어 다음의 네트워크 정보를 가진 리눅스를 ifconfig 명령어와 route 명령어로 설정하자

ip address : 192.168.0.150
subnet mask : 255.255.255.0
default gateway : 192.168.0.1
broadcast : 192.168.0.255

ifconfig eth0 192.168.0.150 netmask 255.255.255.0 broadcast 192.168.0.255 up
route add default gw 192.168.0.1 dev eth0

위에서 첫번재 줄은 아이피와 서브넷을 설정한 것이고
아래 route 명령어는 디폴트GW 를 설정한 것이다 .


2008. 5. 22. 16:49

15. 삼바서버 설정하기 ( 초간단)

REDHAT 기준으로 설명

일단 X-window 의 메뉴에서 System Settings >> Server Settings >> Samba
사용자 삽입 이미지

나타나는 화면에서

Add 를 눌러 디렉토리를 설정

Edit Samba Share 의 Access 탭에서 Allow access to everyone 선택

다시 Samba Server Configuration 에서
Perferences 를 눌러 나타나는 Server Settings 에서

(1) Base 탭에서
Workgroup 란에 WORKGROUP ( 이것은 보통 윈도우의 디폴트 값과 같이 설정하기 위해 )
(2) Security 탭에서
Authentication Mode 를 User 로 설정
사용자 삽입 이미지

그런다음 사용하고자 하는 유저를 리눅스 유저에 추가

adduser test
<< test 라는 유저를 생성
passwd test
<< test 란 유저의 패스워드 설정

smbpasswd -a test
<< 삼바를 test 라는 유저가 사용하기 위한 패스워드 설정

그런 다음 service smb restart 하고

윈도우에서 \\서버의아이피
하면

아이디 패스워드를 물어보게 된다.

만약 접속자체가 안된다면 smb.conf 파일을 찾아서 ( /etc/samba/smb.conf )
거기의 hosts.allow 란에 자신의 네트워크 아이피 대역을 적어줌

2008. 5. 19. 16:35

14. history 에 날짜를 보이도록

원문 : http://www.fduser.org/blog/88

# Add timestamp to .bash_history
HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S\ "
export HISTTIMEFORMAT

위와 같이 /etc/profile 파일에 추가 후 source /etc/profile 또는 ssh 로 재로그인 후 부터는
history 명령어 입력시 Column 2 에 연/월/일/시/분/초 의 시간 정보를 확인할 수 있습니다.

[root@rootnya root]# history
  959  2007-06-23_02:08:59\ vi /home/com/www/bbs/skin/member_list/list_main.php
  960  2007-06-23_02:10:00\ ps aux
  961  2007-06-23_02:10:01\ ps ax
  962  2007-06-23_05:24:47\ vi /etc/procmailrc
  963  2007-06-23_05:25:07\ /etc/init.d/qmail reload
  964  2007-06-23_05:25:08\ ps aux
  965  2007-06-23_05:25:11\ /etc/init.d/qmail restart
  966  2007-06-23_05:25:12\ ps aux
  967  2007-06-23_05:25:20\ tail -f /var/log/qmail/procmail
  968  2007-06-23_05:25:31\ vi /etc/procmailrc
  969  2007-06-23_05:25:39\ /etc/init.d/qmail restart
  970  2007-06-23_05:25:47\ vi /var/log/qmail/procmail
  971  2007-06-23_05:26:38\ vi /etc/procmailrc
  972  2007-06-23_05:26:49\ /etc/init.d/qmail restart
[root@rootnya root]# history

단, bash-3.0-alpha 이상의 bash 부터 HISTTIMEFORMAT 변수를 지원합니다.
이전 버전의 bash 는 위 이상의 버전으로 업데이트 후 부터 지원이 됩니다.

크리티컬한 분석 또는 시스템 레포팅 작성시 유용한 정보를 하나 더 얻을 수 있는 팁입니다.

참고 :

 W 와 스페이스(빈칸) 을 해주셔야 잘 됩니다.

2008. 5. 15. 10:58

13. 쓸데없는 파일 용량 줄이기

/var/spool/mail/ 디렉토리 밑의 root 나 아니면 다른 사용자로 온 메일들이 차곡차곡
쌓여있을 것이다.

이것은 물론 중요할 때가 있다. 하지만 사용자의 입장에서는 필요없는 경우도 있다

더군다나 계속적으로 증가하는 용량이 부담스러울때는
파일은 그대로 두고 싶고 용량만 0 으로 만들고 싶을때는
다음과 같이 한다

 cat /dev/null > /var/spool/mail/root

이것은 root 파일은 그대로 계속 있게 하면서
용량만 0 으로 만들어 버린다.

주기적으로 지우고 싶다면 crontab 에 등록을 하면 된다.

2008. 5. 9. 12:36

12. 리눅스에 대한 좋은 링크

2008. 5. 7. 13:12

11. 파일 개수 세기

여러개의 파일의 개수만 알고자할 때

먼저 파일의 리스트를 txt 파일로 리다이렉트 한다.

find . -name 'cdr1.txt.20084*' > /file_list.txt


그런 다음

wc -l /file_list.txt


하면 개수가 나온다

SEEMS 의 수정대로 하면 아예 한 화면에서 파일 개수를 셀 수 있다.

find . -name 'cdr1.txt.20084*' | wc -l

2008. 4. 21. 09:47

10. 시간 동기화 rdate 와 다른 NTP

리눅스 서버의 시간 동기화를 시키는 방법은 rdate 와 NTP 를 사용하는 두가지 방법이 있다.

그중에서 NTP 는 좀더 정확한시간을 동기화 시킬 수 있다고 한다.

리눅스에서 NTP 를 사용하는 방법은
(1) GUI 에서
System setting >> Date & Time 에서 NTP 탭을 눌러서 동기화시킬 서버의 IP 나 주소
( 물론 주소로 하기 위해서는 DNS 설정이 잘 되어 있어야 함 ) 를 추가하고
확인 을 누르면 NTP 데몬이 시작되면서 시간동기화를 수행한다.

(2) Text 환경 즉 SSH 에서
/etc/ntp.conf 파일중에서 맨 마지막에 보면

restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 2.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
server time.bora.net
restrict time.bora.net mask 255.255.255.255 nomodify notrap noquery
server 203.248.240.103
restrict 203.248.240.103 mask 255.255.255.255 nomodify notrap noquery

빨간색이 새로 추가한 time 동기화 서버의 주소임.

service ntdp start 하면 될 듯.



추가 질문 사항

-  NTP 는 도대체 얼마마다 시간 동기화를 시키는 것일까 ?
( ntpd.conf 파일을 찾아봐야 하나 ?? )

NTP Packet 발송 주기
    - Broadcast Type : 64초마다  1개의 Transaction (Packet 1개) 을 보냄 → 지속됨
    - unicast type      : 64초마다  1개의 Transaction (Packet 2개) 을 보냄 → 8번
                        64초마다  5개의 Transaction 연속 성공 시 → 128초 주기로 변경
                        128초마다 5개의 Transaction 연속 성공 시 → 256초 주기로 변경
                        256초마다 5개의 Transaction 연속 성공 시 → 512초 주기로 변경
                        512초마다 5개의 Transaction 연속 성공 시 → 1024초 주기로 변경
                        실패 시 64초로 poll 주기 변경