BLOG main image
분류 전체보기 (122)
일상 (29)
IT이야기 (64)
시스템이야기 (29)
194,286 Visitors up to today!
Today 107 hit, Yesterday 92 hit
daisy rss
한RSS에 추가
tistory 티스토리 가입하기!
'리눅스'에 해당되는 글 14건
2008/07/28 21:23
2주전의 일인 것 같다. 문득, 리눅스에서는 인터페이스명이 eth0, eth1 처럼 사용하는데, 반드시 eth로 시작해야할까라는 생각이 들었다. 서버에 있는 2개의 랜카드중 하나만 설정을 변경해봤다. /etc/sysconfig/network-scripts/ifcfg-eth1을 ifcfg-coffeenix0을 변경하고, 설정값 중 DEVICE=coffeenix0로 설정한 다음 리부팅했다. (CentOS 기준)

DEVICE=coffeenix0
BOOTPROTO=static
BROADCAST=192.168.XX.XXX
HWADDR=00:0F:XX:XX:XX:XX
IPADDR=192.168.XX.XXX


아~ 임의로 인터페이스명을 지정해도 된다.

# ifconfig
coffeenix0 Link encap:Ethernet  HWaddr 00:0F:XX:XX:XX:XX
          inet addr:192.168.XX.XXX  Bcast:192.168.XX.XXX  Mask:255.255.XXX.XXX
          inet6 addr: ...생략.../64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13 errors:0 dropped:0 overruns:0 frame:0
          TX packets:453 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:832 (832.0 b)  TX bytes:47862 (46.7 KiB)
          Interrupt:217
eth0      Link encap:Ethernet  HWaddr 00:0F:XX:XX:XX:XX
... 생략 ...

'그럼 변경해서 뭐하냐? 쓸모 없는 것 같고...'라고 한다면, 인터페이스명을 보고 직관성을 높일 수 있다. 미러링을 하는 포트라면 mir0 처럼 인터페이스를 설정하면 보다 직관적으로 확인이 가능할 것 같다. 랜카드가 3개이상이고, 그 중 하나는 meta data 통신용이라면 meta0처럼 지정하면 보다 쉽게 알 수 있을 것이다. 참고로 ifcfg-eth1 파일명을 그대로 두고 안의 DEVICE= 설정만 변경해도 된다. 단지 파일명은 직관적으로 보기위한 용도일뿐이다.

주의할 것은 몇몇 프로그램은 eth로 시작하지 않는 것은 인식하지 못할 수도 있다는 것. mii-tool은 eth0~eth7의 인터페이스만 자동으로 체크하므로 다른 인터페이스일 경우 별도로 지정해줘야 한다. sysctl로 'net.ipv4.conf.인터페이스명' 설정시 인터페이스별로 설정하여  사용해왔다면 이부분도 수정이 필요하다.

# mii-tool
eth0: negotiated 100baseTx-FD, link ok
# mii-tool coffeenix0
coffeenix0: negotiated 100baseTx-FD, link ok

고정관념이 무섭다. ^^

이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://truefeel.tistory.com/trackback/118 관련글 쓰기
BlogIcon 천재태지서주영 | 2008/07/29 16:35 | PERMALINK | EDIT/DEL | REPLY
아~ 그렇군요.
정말 아무 의심없이 ethxx 로 사용하곤 하는데, 필요에 따라서 바꿔서 사용하면 좋겠네요 ^^
BlogIcon 좋은진호 | 2008/08/22 20:28 | PERMALINK | EDIT/DEL
예. 서버도 생각대로 하면 되고... ^^*
Name
Password
Homepage
Secret
2008/04/22 00:52
CrossOver Office로 잘 알려진 CodeWeavers에서 리눅스와 Mac에서 윈도우즈 게임을 할 수 있는 CrossOver Games 7.0.0 을 발표했다. 발표한지는 시간이 좀 지났는데, 국내 리눅스 관련 커뮤니티나 블로그에서는 조용해서, 얘기를 끄집어 낸다.

사용자 삽입 이미지

CrossOver Games은 최신 Wine을 만들어졌으며, 맥 OS X는 Tiger와 Leopard에서 모두 잘 동작한다. 그리고, 리눅스는 우분투(Ubuntu) 7.10과 데비안(Debian) Etch에서 테스트가 되었다. 2개의 배포판에서 테스트되었다는 뜻이지 다른 배포판에서 안되는 것은 아니다. 공식 홈페이지에는 없는 내용이지만, FreeBSD와 FreeBSD기반의 데스크탑BSD인 PC-BSD, DesktopBSD에서도 운영되는 것으로 알려졌다. ( ./ 의 'CrossOver Games for FreeBSD' 참고)

지원하는 게임은 World of Warcraft(WoW), EVE Online, Guild Wars, Prey, Half-Life 2, Team Fortress 2, Counterstrike 등 다양하며, 전체 게임 목록은 CrossOver Games의 Compatibility 페이지에서 확인할 수 있다.

사용자 삽입 이미지
사용자 삽입 이미지

[ 이미지 출처 : CrossOver Games 에서 ]

Linux, Mac 버전 모두 39.95달러이며, trial 버전을 홈페이지에서 받아볼 수 있다.

구글의 리눅스용 피카사(Picasa)가 Wine을 최적화하여 만들어진 것인데,  윈도우즈보다는 느리게 동작한다. CrossOver Games도 Wine기반이다보니, 게임할 때 느려지는 문제가 있을 건데, 게임에 지장이 없을 만큼 속도감을 주느냐가 CrossOver Games의 가치 판단 기준이 될 것 같다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://truefeel.tistory.com/trackback/110 관련글 쓰기
Tracked from Forest : Behind everywhere | 2008/06/25 21:27 | DEL
맥오에스에서 vmware마저 지워버린지 일주일 가량이 지났다. '급할 때 잠시 쓰는' 용도로 VM을 만들고 사용하기에는 맥북 에어의 하드디스크 용량이 충분하지 않았고, 마침 우분투 소식을 통해서 wine 1.0이 나왔다는 소식도 접했다. 그래서 맥오에스용 wine을 찾아보다가, codeweaver 의 CrossOver 체험판을 설치했다. 어차피 가뭄에 콩 나듯 어플리케이션 세 가지 (Internet Explorer 6/7, MS Office 200...
BlogIcon 나인테일 | 2008/04/22 01:43 | PERMALINK | EDIT/DEL | REPLY
Crossover... Mac용을 써 봤습니다만 아주 이가 갈리지요. 특히 한글 입출력 문제는 답이 없음...OTL... XP는 확장완성형, OSX는 첫가끝 유니코드를 사용하는게 문제이지요. 거기다 인터넷 익스플로러도 아주 심각하게 오작동합니다. 널리 알려져있다시피 한글 워드 2000년 이후 버전들은 Wine에서 안 굴러가고 말이지요.
BlogIcon 좋은진호 | 2008/04/22 02:20 | PERMALINK | EDIT/DEL
CrossOver Mac(CrossOver Mac, Linux로 이름이 바뀌 전에는 Office)은 리눅스에 비해 상당히 심한가보네요. 오래전이긴 한데, 리눅스에서 IE에 한글 폰트를 설치해서, 그런대로 IE를 사용했거든요.
BlogIcon Draco | 2008/04/22 01:56 | PERMALINK | EDIT/DEL | REPLY
결국 와인의 문제점을 그대로 가지고 있다는 이야기군요. 음...
BlogIcon Lv5 드라키 | 2008/04/22 07:36 | PERMALINK | EDIT/DEL | REPLY
아직 와인은 와인인가...
BlogIcon 이정일 | 2008/04/22 11:17 | PERMALINK | EDIT/DEL | REPLY
예전에 WINE으로 스타크래프트 돌릴 때 오버로드 대각선으로 정찰보내고 점심먹고 왔더랬죠. :(
BlogIcon 좋은진호 | 2008/04/23 22:59 | PERMALINK | EDIT/DEL
정일님이 전에 리눅스 사용하셨구나.. 와우~~
BlogIcon 이정일 | 2008/04/23 23:29 | PERMALINK | EDIT/DEL
10년 정도 된 오래전 이야기죠.
슬랙웨어 버전 8인가? 처음으로 접하고 리눅스의 매력에 빠져 거의 한동안 다른 것은 안하던 때가 있었죠.

한 때 그걸로 밥벌어 먹고 살기도 했는데...
후후~

지금은 그냥 쉬엄쉬엄 천천히 살고 있습니다.
BlogIcon joogunking | 2008/04/22 11:25 | PERMALINK | EDIT/DEL | REPLY
가상화가 있는데 호환성도 떨어지고 속도도 떨어지면 안 되겠죠.
편의성은 좋을 듯 한데. 어떨지 궁금합니다.
BlogIcon 좋은진호 | 2008/04/23 23:01 | PERMALINK | EDIT/DEL
CrossOver Games 사용하신분은 별로 없어서 어떨런지는...

Cross...의 목표는 정상 실행이 되도록 하는 것이니깐, 실행은 잘 것 같은데, 아무래도 속도가 관건일 것 같습니다.
BlogIcon 하타 | 2008/04/23 07:00 | PERMALINK | EDIT/DEL | REPLY
결국 아직은 해결되지 못한 먼나라 이야기... ㄱ-
BlogIcon 삐꾸강아쥐 | 2008/04/23 23:49 | PERMALINK | EDIT/DEL | REPLY
ㅡ.ㅡ 한번 설치해 봐야겠네요...ㅎㅎㅎ
BlogIcon 좋은진호 | 2008/04/24 00:10 | PERMALINK | EDIT/DEL
삐꾸강아쥐님 잘 지내시고 계셨네요.
저는 설치 안해볼겁니다. ㅎㅎ 윈도우에서도 게임을 거의 안하거든요. 설치해보시면 결과라도 말씀해주시면 감사.. ^^
BlogIcon coffeejava | 2008/04/28 00:09 | PERMALINK | EDIT/DEL | REPLY
한번 써보고 싶군요^^
안그래도 우분투 새버전 나와서 업데이트도 해야하고~
근데 아쉽게도 Blizzard Entertainment 스타크래프트가 안되네요..
BlogIcon 좋은진호 | 2008/04/29 00:14 | PERMALINK | EDIT/DEL
우분투 매니아? 하기야 잡지에 기고도 했으니.
새로운 것 자주하는 너 모습 보기 좋다. 어여~ 해봐~~ (압박 ㅋㅋ)
BlogIcon 라이천령 | 2008/09/29 14:09 | PERMALINK | EDIT/DEL | REPLY
CrossOver Games 를 통해 EvE-Online 이 mac 에서 돌아가죠.
성능이 떨어지는 (특히 VGA) 시스템은 고작 화면만 보는수준이라고 해야 되구요.
VGA 성능이 좋은(macbook pro 8600m 512m) 같은 시스템에선그럭저럭 할만하네여..
(다만 PvP 이나 Mission 불가능.. Leg으로 인한 플레이어 사망에 이름..)
근데 결정적으로 2byte 지원이 안되서 챗팅이 안되는것이 가장 큰 불만..
BlogIcon 좋은진호 | 2008/10/06 23:39 | PERMALINK | EDIT/DEL
mac용으로 사용해보셨나보네요. 좋은 정보글 감사합니다.
Name
Password
Homepage
Secret
2008/04/01 14:29
아침부터 구글의 사투리 번역( http://www.google.co.kr/landing/saturi/ )과 티스토리의 '샨새교 교주'검색( http://tistory.com/AF/searchAF/ )등으로 떠들썩하다. 4월은 늘 이렇게 떠들썩하게 시작한다.

사용자 삽입 이미지

kernel.org도 만우절 이벤트(?)에 동참하기 위해 재밌는 메일링을 발송했다. 발송시간이 'Tue, 01 Apr 2008 01:01:17'. 제목 또한 눈에 띤다. 'Kernel.org Downtime Notice - Please read *very* important'. mirror 서버, 공개된 서버, 백엔드 마스터 서버 등 kernel.org의 모든 서버를 OS 업그레이드를 이유로 서버를 내린다는 것이다. 그것도 'Linux Kernel Organization'에서 리눅스를 안쓰고 FreeBSD를 쓰겠다는 얘기를 꺼낸다. FC5에서 FreeBSD 7.0로 ^^. 메일의 뒷부분에는 SlashDot의 링크 등을 걸어놓으며, 이러한 결정하게된 근거를 써놨다. 가볍게 결정하지 않은 것 처럼 말이지...

메일링 전체 내용 : http://lkml.org/lkml/2008/3/31/367

I and the other Kernel.org admins would like to announce downtime for
ALL kernel.org machines (this includes all of the mirror machines, the
public machines and the backend master).  The downtime is scheduled to
start on or around April 2nd, 2008 on or around 0001 UTC.

After much deliberation, research and argument in #korg (along with
screaming matches between HPA and I over dinner) we are upgrading the
kernel.org machines from Fedora Core 5 to FreeBSD 7.0.  This decision
does not come lightly to the Kernel.org admins, and we would like to
point out several key things that helped us form our decision:

이 메일링에 대한 답변( http://lkml.org/lkml/2008/3/31/369 ) 또한 재밌다.

Highly commendable.  You should take this opportunity to also upgrade
network facilities to meet the requirements as laid out in RFC1149 (CPIP).

매우 훌률하다고 칭찬의 말로 띄워준다. 이번에 RFC1149(CPIP) 서술된 요구사항을 만족시키기 위해, 네트웍 설비 또한 업그레이드할 기회를 가져야 한다고 덧붙인다. 여기서 재밌는 것은 RFC1149다. RFC1149(Standard for the transmission of IP datagrams on avian carriers, 조류를 이용한 IP datagrams 전송 표준)는 RFC 유머중에 하나로, 공식 RFC문서가 아니다. CPIP는(Carrier Pigeon Internet Protocol)는 얘기 안해도 이해가 될 것이다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://truefeel.tistory.com/trackback/100 관련글 쓰기
BlogIcon 랜덤여신 | 2008/04/01 19:59 | PERMALINK | EDIT/DEL | REPLY
정말로 FreeBSD 7.0 쓰게 되면 재밌겠네요.
BlogIcon 좋은진호 | 2008/04/01 23:35 | PERMALINK | EDIT/DEL
작년 여름에 대표 OS 벤더사(?)의 사이트는 어떤 OS를 사용하는지 살펴본 적이 있습니다. ( http://coffeenix.net/bbs/viewtopic.php?t=2397 ) 다들 자신의 것을 사용하고 있었죠.
서버도 여러대일텐, 몇대는 랜던여신님의 말씀대로 FreeBSD 7.0을 사용해도 재밌을 것 같습니다. 거기에다가 실제로 4월 2일에 변경. ^^ '거짓말인 줄 았았는데 진실이더라'.. ^^
BlogIcon 이정일 | 2008/04/02 16:32 | PERMALINK | EDIT/DEL | REPLY
CPIP가 뭔가요?
BlogIcon 좋은진호 | 2008/04/02 22:15 | PERMALINK | EDIT/DEL
CPIP(Carrier Pigeon Internet Protocol), 말 그대로, 비둘기가 IP datagrams를 전송하는 것을 말합니다. RFC 1149 유머와 동일한 것으로 보면 됩니다.
이젠 만우절 이벤트는 필수인 것 같네요. ^^
BlogIcon 좋은진호 | 2008/04/18 23:08 | PERMALINK | EDIT/DEL | REPLY
참고로 2008.4.18 현재 kernel.org는 Fedora로 잘 운영되고 있다. ^^
Name
Password
Homepage
Secret
2008/02/11 23:22
리눅스 커널 2.6.17부터 2.26.24.1 까지의 vmsplice() 콜의 버그로 로컬에서 root 권한을 획득할 수 있다. KLDP에도 나와있듯이, milw0rm에는 2개의 local root exploit 코드가 공개되어 있다. 테스트결과 너무 쉽게 root 권한이 획득되었다.

$ uname -r
2.6.18-8.1.8.el5
$ ./exploit
-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7ee1000 .. 0xb7f13000
[+] root
# id
uid=0(root) gid=0(root) groups=501(truefeel)
#

개인사용자나 외부 접근이 제한된 시스템은 그나마 다행인데, 커널 2.6.x을 사용하는 호스팅업체나 공동 사용 서버는 빨리 대처해야할 것이다. 커널 패치를 적용하여 리부팅을 해야할 것이나 재부팅할 수 없는 서버도 있을 것이다. 이 땐 임시 메모리 패치hkpco님의 방어 커널 모듈을 이용하면 된다.

* 관련글


------------------------------------------------------------------
[ 내용 추가 ]

*2.13(수) 현재 RHEL5, Cent5 패치 커널 나옴
http://lists.centos.org/pipermail/centos-announce/2008-February/014684.html
https://rhn.redhat.com/errata/RHSA-2008-0129.html

==================================================================== Package                 Arch       Version          Repository        Size
==================================================================== Installing:
kernel                  i686       2.6.18-53.1.13.el5  updates            13 M
kernel-devel            i686       2.6.18-53.1.13.el5  updates           4.7 M
Updating:
kernel-headers          i386       2.6.18-53.1.13.el5  updates           785 k
====================================================================

이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://truefeel.tistory.com/trackback/90 관련글 쓰기
Tracked from 랜덤여신의 폐인모드 | 2008/02/12 00:25 | DEL
리눅스 시스템의 일반 사용자 계정에서 프로그램(exploit)을 돌려서 관리자(root) 권한을 획득할 수 있는 보안 취약점이 발견되었습니다. 시스템에 계정이 있는 공격자가 root 권한을 얻을 수 있습니다. vmsplice() 시스템 콜에 보안 구멍이 있는 것이 원인이라고 합니다. 버그가 있는 버전은 2.6.17 부터 2.6.24.1 이며, 현재 최신 버전은 오늘 나온 2.6.24.2입니다. 사실상 요즘에 설치한 서버 모두가 대상입니다. 위에서...
Tracked from NiDEV's Tistory :D | 2008/02/12 12:54 | DEL
비상입니다. root 쉘이 바로 곧장 떨어지는거 보고 저 잠시 숨을 쉴수 없었습니다. 커널 2.6.17버전부터 2.6.24-r1까지. (vmsplice exploit 방지 패치가 먹히기 이전의.) 모두 먹히는 익스플로잇이더군요. 실행과 동시에 바로 일반유저에서 root 로 바뀌는게 정말 멋있더군요. 어떤 사람들이 이런걸 찾아낼 수 있을까요? 아직 커널의 'ㅋ'도 제대로 알지 못하는 저로서는 그저 신기할 따름입니다. 일반 데스크탑 유저들에게는 크게 지..
xaswe | 2008/02/12 00:57 | PERMALINK | EDIT/DEL | REPLY
관련글에 hkpco님은 hkpco.kr 관련 링크가 되야하는듯 o - o
BlogIcon 좋은진호 | 2008/02/12 12:10 | PERMALINK | EDIT/DEL
방어 소스코드는 hkpco.kr에 링크되어 있는데, 글은 블로그(car...)에 쓰여 있어서 저 URL로 링크했습니다.
BlogIcon 나이데브 | 2008/02/12 12:56 | PERMALINK | EDIT/DEL | REPLY
앞으로 또 어떤 버그가 발견될지 기대됩니다. :-)
역시 오픈소스인 커널이라 버그 패치가 상당히 빨리 이루어질수 있었겠죠.
BlogIcon 좋은진호 | 2008/02/12 18:49 | PERMALINK | EDIT/DEL
exploit이 너무 많이 돌아다녀서, 스크립트 키드들이 득세하는 꼴이 되어버렸어요. 호스팅업체들은 바쁜 하루 보냈을 것 같아요. ^^
그래도 커널 버전이 빨리 업되어서 다행입니다. 배포판별로 커널 패치가 적용된 패키지를 제공하지 않는 곳도 있지만, 임시 해결책으로 숨은 고를 수 있으니 천만 다행. ^^
| 2008/07/08 21:31 | PERMALINK | EDIT/DEL | REPLY
비밀댓글 입니다
Name
Password
Homepage
Secret
2008/01/10 19:55
apache 웹로그, php 에러로그, syslog를 통한 로그를 모니터링할 때 특정 문자열에 대해서는 highlight해주면 원하는 부분만 쉽게 볼 수 있을 것이다. 또한 수치를 모니터링하는 경우, 0~59는 양호, 60~79 주의, 80~99는 경고를 나타내기위해 각각 녹색, 파란색, 빨간색으로 표시해준다면, 많은 로그가 순간적으로 스크롤되더라도 눈에 쉽게 띌 것이다.
이 글은 highlight 처리를 해주는 1) sed를 이용한 쉘스크립트와 2) 이보다 더 나은 perl 스크립트를 통해 모니터링하는 방법을 설명한다.

1. sed를 이용한 highlight 스크립트

* view.sh 내려받기

#!/bin/bash
#
# 특정 문자를 highlight한다. (view.sh)
#
# by 좋은진호(truefeel, http://coffeenix.net/ )

# color
szColBk="^[[;30m";      szColBk1="^[[1;30m"     # black
szColRe="^[[;31m";      szColRe1="^[[1;31m"     # red
szColGr="^[[;32m";      szColGr1="^[[1;32m"     # green
szColYe="^[[;33m";      szColYe1="^[[1;33m"     # yellow
szColBl="^[[;34m";      szColBl1="^[[1;34m"     # blue
szColPu="^[[;35m";      szColPu1="^[[1;35m"     # magenta(purple)
szColCy="^[[;36m";      szColCy1="^[[1;36m"     # cyan
szColGy="^[[;37m";      szColWh="^[[1;37m"      # white
szNormal="^[[;m"

#
sed \
        -e "s/^[A-Z][a-z][a-z] *[0-9]* //g" \
        \
        -e "s/ \(192.168.123.[0-9]*\)/${szColGr} \\1$szNormal/g" \
        \
        -e "s/\(httpd\)/${szColCy}\\1$szNormal/g" \
        -e "s/\(vsftpd\)/${szColCy}\\1$szNormal/g" \
        -e "s/\(proftpd\)/${szColCy}\\1$szNormal/g" \
        -e "s/\(ftpd\)/${szColCy}\\1$szNormal/g" \
        -e "s/\(sshd\)/${szColCy}\\1$szNormal/g" \
        -e "s/\(xinetd\)/${szColCy}\\1$szNormal/g" \
        -e "s/\(Connection attempt\)/${szColRe1}\\1$szNormal/g" \
        -e "s/\(authentication failure\)/${szColRe1}\\1$szNormal/g" \
        -e "s/\(BAD SU\)/${szColRe1}\\1$szNormal/g" \
        \
        -e "s/\(nfs server\)/${szColYe}\\1/g" \
        \
        -e "s/$/$szNormal/g"
[/quote]

사용은 tail -f 로그파일명 |./view.sh 형태로 사용하면 된다.

첫번째 부분은 색깔을 정의한 변수이다. 여기서 ^[[;31m ANSI코드로, ^[ 문자는 ESC키를 의미한다. 쉘에서 입력할 때 Ctrl+V를 누른 후 ESC키를 누르면 입력할 수 있다. 색깔은 사용하는 터미널에 따라서 약간 다르게 표시될 수도 있다.

사용자 삽입 이미지


그 다음부터는 sed를 이용해서 문자열을 변환처리하며, 한줄당 하나의 정규표현식을 사용하였다. 부분적으로 살펴보자.

 1:     -e "s/^[A-Z][a-z][a-z] *[0-9]* //g" \

기본적으로 -e s/변환전문자열/변환후문자열/g 형식을 사용하는데, 위는 syslog를 통해 남은 로그중 'Oct 30'과 같이 '월일'을 표시하지 않기 위한 정규표현식이다.
 
 1:     -e "s/ \(192.168.123.[0-9]*\)/${szColGr} \\1$szNormal/g" \
 2:     \
 3:     -e "s/\(httpd\)/${szColCy}\\1$szNormal/g" \
 4:     -e "s/\(vsftpd\)/${szColCy}\\1$szNormal/g" \

첫번째줄은 특정 IP대역을 highlight하기 위한 것으로 서버의 IP, 접속하는 PC의 IP등을 한줄에 하나씩 적어주면 좋을 것이다. 두번째줄의 \ 은 보기 좋게 구분하기 위한 것이며, 세번째와 네번째줄은 각각 httpd와 vsftpd를 highlight한다.

 1:     -e "s/\(nfs server\)/${szColYe}\\1/g" \
 2:     \
 3:     -e "s/$/$szNormal/g"

첫번째줄은 'nfs server'로 문자열이 나온다면, 해당 줄 끝까지 highlight한다. ${szColYe}\\1과 server과 ${szColYe}\\1$szNormal 의 차이를 생각하면 쉽게 이해가 될 것이다. 세번째줄은 줄의 끝부분에서 색깔 표시는 정상으로 돌려놓으라는 의미이다.

2. perl을 이용한 highlight 스크립트


위의 예제를 통해서 원하는 문자열을 원하는 색깔로 highlight하는 것은 쉽게 할 수 있을 것이다. 이젠 perl이용한 방법을 소개한다.

* view.pl 내려받기

#!/usr/bin/perl
#
# 특정 문자를 highlight한다. (view.pl)
#
# by 좋은진호(truefeel, http://coffeenix.net/ )

# color
$szColBk ="^[[;30m";    $szColBk1 ="^[[1;30m";  # black
$szColRe ="^[[;31m";    $szColRe1 ="^[[1;31m";  # red
$szColGr ="^[[;32m";    $szColGr1 ="^[[1;32m";  # green
$szColYe ="^[[;33m";    $szColYe1 ="^[[1;33m";  # yellow
$szColBl ="^[[;34m";    $szColBl1 ="^[[1;34m";  # blue
$szColPu ="^[[;35m";    $szColPu1 ="^[[1;35m";  # magenta(purple)
$szColCy ="^[[;36m";    $szColCy1 ="^[[1;36m";  # cyan
$szColGy ="^[[;37m";    $szColWh  ="^[[1;37m";  # white
$szNormal="^[[;m";

#
$szBeep="\a";

#
while(<STDIN>) {
    # log에서 필요없는 부분 삭제
        s/^[A-Z][a-z][a-z] *[0-9]* //g;

    # IP
        s/(192\.168\.123\.[1-9][0-9]{0,2})/$szColGr$1$szNormal/g;

    # 줄 끝은 정상 색으로 변경
    s/$/$szNormal/;

    # 원하는 문자열에 색을 입힌다
        s/(httpd)/$szColCy$1$szNormal/g;
        s/(vsftpd|proftpd|ftpd)/$szColCy$1$szNormal/g;
        s/(sshd)/$szColCy$1$szNormal/g;
        s/(xinetd)/$szColCy$1$szNormal/g;
        s/(Connection attempt)/$szColRe1$1$szNormal/g;
        s/(authentication failure)/$szColRe1$1$szNormal/g;
        s/(BAD SU)/$szColRe1$1$szNormal/g;

    # 원하는 문자열을 찾으면 줄 끝까지 색을 읽힌다.
        s/(nfs server)/$szColYe$1/g;

    print $_;
}

사용은 shell스크립트를 사용할 때와 동일하게 tail -f 로그파일명 |./view.pl 형태로 사용하면 된다.

 1:     s/(192\.168\.123\.[1-9][0-9]{0,2})/$szColGr$1$szNormal/g;
 2:     ... 생략...
 3:     s/(vsftpd|proftpd|ftpd)/$szColCy$1$szNormal/g;

첫번째줄에서 192\.168\.123\.[1-9][0-9]{0,2} 은 sed를 이용할 때보다 더 정교하게 IP를 체크한 것으로, 1) 192.168.123. 시작하는 IP대역 2) 그 다음 1~9까지 숫자이고, 그다음에 숫자가 오게된다면 0~9까지 숫자가 0자리~2자리까지 가능하다. 정규 표현식에 대한 자세한 사항은 이 글의 주제를 벗어나는 내용이므로 '4 참고 자료'를 살펴보기 바란다. 세번째줄은 vsftpd, proftpd, ftpd 등의 문자를 highlight한다.

다음은 위의 스크립트를 이용하여 로그를 모니터링한 화면이다.
사용자 삽입 이미지


3. 수치에 따라 다른 색으로 표시

어떤 로그에 수치가 다음과 같이 실시간으로 쌓인다고 가정하자. 그리고, 그 수치는 'disk 54'와 같은 형태로 되어 있다.

---------  ------   --------
측정수치    상태     색깔
---------  ------   --------
0~59       양호      녹  색
60~79      주의      파란색
80~100     경고      빨간색
---------  ------   --------

다음은 perl을 이용하여 색을 표시하는 예이다. 그리고, 수치가 80이상일 땐 beep음을 발생한다. 이런한 방법은 서버의 load, disk 사용량, disk I/O, 커넥션 수, 메모리 사용량 등을 모니터링할 때 유용하게 사용할 수 있다.

 s/(disk [0-9][^0-9])/$szColGr$1$szNormal/;
 s/(disk [1-5][0-9][^0-9])/$szColGr$1$szNormal/;
 s/(disk [6-7][0-9])/$szColBl$1$szNormal/;
 s/(disk [8-9][0-9])/$szColRe1$1$szNormal$szBeep/;
 s/(disk 100)/$szColRe1$1$szNormal$szBeep/;

4. 참고 자료

* ANSI color codes
  http://pueblo.sourceforge.net/doc/manual/ansi_color_codes.html
* 정규표현식
  http://coffeenix.net/dir_catagory.php?cata_code=99
* Perl regular expressions
  http://www.perl.com/doc/manual/html/pod/perlre.html
이올린에 북마크하기(0) 이올린에 추천하기(0)
Trackback Address :: http://truefeel.tistory.com/trackback/81