IT이야기2009. 2. 9. 19:33
UNIX time은 UTC(표준시) 기준으로 1970년 1월1일 00:00:00 부터 시작한다. 재밌게도 1234567890

- GMT 기준으로 '13일의 금요일' 23:31:30이고,
- GMT+9(우리 나라) 기준으로 '14(토) 발렌타인데이' 08:31:30이다.
( GMT 기준으로 13일이라는 것을 얘기해준 '쿠사리줄까'님 감사)

php에서
<?
echo date("Y/m/d H:i:s T", "1234567890");
?>
결과 : 2009/02/14 08:31:30 KST

perl에서
$ perl -e "print scalar localtime(1234567890);"
Sat Feb 14 08:31:30 2009

shell에서
$ date -d @1234567890
2009. 02. 14. (토) 08:31:30 KST

글을 쓰는 현재는 1234175076.
Posted by 좋은진호
IT이야기2009. 2. 7. 00:35
MIB Browser로 운영중인 네트웍 장비의 SNMP값을 보곤하는데, '혹시 아파트나 건물의 네트웍 장비의 SNMP값을 얻어낼 수 있을까'라는 생각이 들었다.
PC에서 사용중인 게이트웨이 IP를 MIB Browser에 넣고 'system.sysDescr.0' GET 요청을 해봤다. 오~ 'V5216F NOS 9.26/DS-O4-06H-B3'라고 나온다. SNMP를 열어놨어? 아니~~ 이러면 안되는 거잖아. walk 요청을 해봤다. 정보가 줄줄줄~~ 모두 나온다.

sysDescr.0 V5216F NOS 9.26/DS-O4-06H-B3
sysUpTime.0 3110 hours 55 minutes 7 seconds
sysName.0 ?????????_???????
sysLocation.0

ifDescr.1 port1-FX-100
ifDescr.2 port2-FX-100
... 생략 ...
ifDescr.5 port5-TX-10/100
ifDescr.6 port6-TX-10/100
... 생략 ...
ifDescr.13 port13-UNKNOWN
ifDescr.16 port16-UNKNOWN
... 생략 ...
ifDescr.17 port17-GBIC
ifDescr.18 port18-GBIC

.1.3.6.1.2.1.47.1.1.1.1.12.1 DASAN Networks Inc.,

V5216F 장비에 대해 찾아봤다.
SNMP 정보에서도 확인된 것 처럼 '다산 네트웍스' 장비이며, 10/100 Base TX(또는 100 Base FX) 16포트와 GBIC 2포트를 제공한다. 'FTTB/FTTH 네트워크 환경기반의 아파트, 호텔, 병원 등과 같은 거주자 밀집 지역에 서비스 위한 장비'라고 한다. 그리고, 모 통신사에 2004년, 2005년 등에 많은 대수를 납품한 적이 있다. 그렇다. 난 그  통신사의 서비스를 이용하고 있다.

SNMP 정보로 네트웍 장비 종류, 업타임, 포트별 트래픽, TCP/UDP/ICMP/SNMP 통계정보, 라우팅정보, 그리고 이 장비를 이용하는 여러 가입자의 MAC Address, 사용중인 IP 등의 정보를 모조리 볼 수 있었다. IP 대역이 4~5개 정도 되었고 확인된 IP가 대략 140여개 된다. IfInOctets, IfOutOctets 등의 값으로 트래픽 그래프(RRD나 MRTG)를 그릴 수도 있을 것이다.

가입자 IP정보와 MAC Address


라우팅 정보


두 곳에서 SNMP정보를 얻었는데, system.sysName.0 값은 '건물명_장비명'(아파트명_장비명) 또는 '건물명_설치된공간명' 처럼 규칙이 있는 것으로 보인다. 그리고 두 곳의 system.sysUptime.0 이 비슷했다. 그 시점에 일괄점검이나 펌웨어 업그레이드를  했을 가능성이 보인다.

장비 기본 정보


서비스 제공업체는 Community명을 변경하거나, SNMP GET/SET을 허용할 IP를 제한할 수도 있을건데, 가입자들은 네트웍에 대해 전혀 모른다는 안일한 생각을 갖고 있는 것은 아닐까.

Posted by 좋은진호
IT이야기2009. 2. 3. 19:37
리눅스에서는 GQview( http://gqview.sourceforge.net/ ), gThumb 등으로 Exif 정보를 쉽게 살펴볼 수 있다.

01


사진의 Exif 정보에는 찍은 시간, 어떤 디카를 갖고 있는지 등 너무 상세한 정보가 적나라게(?) 드러난다. '아~ 이사람 그시간에 저기에 있었군'이라는 느낌을 받기 싫다면 gimp에서 Exif 정보를 지우고 저장할 수 있다. 저장할 때 Exif 정보를 함께 저장할 것인지 선택('Save EXIF data')할 수 있는데, 체크만 해제(기본값은 체크되어 있음)하면 된다.


Exif정보가 말끔히 사라졌다.

Posted by 좋은진호
IT이야기2009. 2. 2. 23:13
방통위에서 며칠전 2009년도 '본인확인조치 의무대상' 사업자(본인확인제) 선정결과를 공시하였다. 2008년에는 포털 16개, 인터넷 언론 15개, UCC 6개(판도라TV, 디씨인사이드, 엠엔캐스트, 티스토리, 이글루스, 엠군)등 37개 업체였다. 그러나 올해는 무려 153개 사이트로 급증했다.


- P2P 사이트 상당수(짱파일, kdisk, wedisk, mfile, zfile, 프루나, 파일노리, ...)
- 쇼핑몰사이트 상당수
- JobKorea, 알바몬, 인크루트, 사람인, 커리어 등 취업 사이트 다수
- 유투브, 뽐뿌, SLR클럽, 풀빵닷컴, 다나와, cafe24 등

선정기준은 일평균이용자수가 10만명 이상이며 게시판 및 댓글 서비스를 운영하는 사이트를 대상으로 했다고 한다. 결국 유저들이 가는 대부분의 곳에 규제 및 감시할 수 있는 장치를 마련한 것이 아닌가. '정보통신망 이용촉진 및 정보보호 등에 관한 법률'에 따른 것이라는데, 늘 생각 되는게 '이용촉진'이라는 말을 왜 저기에 쓰는 것인지 알 수가 없다.

작년 말 교과서 수정하라는 말도 안되는 일이 벌여졌다. 하지만 교과서에만 해당된 것이 아니었다. '현 대한민국에서 출판의 자유는 없다!! - 때 아닌 출판 검열!!'이라는 글을 읽어보면, 끓어오르는 감정과 나도 모르게 불끈쥔 주먹을 보게될 것이다.

이쯤하면 '빅브라더'도 울고갈 세상이다. '조지 오웰'이 쓴 소설 '1984'(빅브라더가 등장하는 바로 그 소설)는 디스토피아 세상인 1984년을 배경으로 했다. 1984년은 시간적으로 이미 지났지만 '1984'는 결코 멈추지 않고 최근 1년간 무섭게 진행되고 있음을 우리는 안다. 이런식의 규제와 겸열은 그만두고, 정치인이나 고위직의 언행을 검열하는게 나을 듯 싶다. 먼저 뱉어낸 다음 '그게 아니다', '오해다'라고 얘기하고, 지키지 못할 약속으로 국민을 붙통터트리고 있지 않는가.

Posted by 좋은진호
시스템이야기2009. 1. 19. 19:23

FreeBSD 7.1의 큰 변화는 첫째 기본 스케쥴러의 변경, 두번째 '트레이싱, 디버깅 그리고 모니터링의 강화'라고 할 수 있을 정도로 이부분의 발전이 돋보인다. 달라진 것을 간단히 적어본다.

1. SCHED_ULE 스케쥴러

GENERIC 커널에서 기본 스케줄러가 SCHED_4BSD 에서 SCHED_ULE 으로 변경되었다. 7.0에서는 커널 컴파일을 통해서 SCHED_ULE 로 변경할 수 있었다.

options         SCHED_ULE               # ULE scheduler

2. DTrace

   OpenSolaris의 DTrace가 드디어 FreeBSD에 포팅되었다.  DTrace 사용을 위해서는 커널 설정 파일에 다음을 추가한다.

options         KDTRACE_HOOKS           # Kernel DTrace hooks
options         DDB_CTF

   그리고, 모든 소스는 CTF 옵션을 포함된 상태로 리빌드되어야 한다.

 # cd /usr/src
 # make WITH_CTF=1 kernel

DTrace사용을 위한 자세한 준비 과정은 http://www.freebsd.org/doc/en/books/handbook/book.html#DTRACE 에서

3. 몇가지 명령어의 옵션 추가

   1) top 명령에서 -P 옵션으로 CPU별 통게를 볼 수 있다. 리눅스 top에서 '1'를 눌러을 때와 같은 것으로 보면 되다.
      (이 옵션은 FreeBSD 6.4에서도 사용 가능)

last pid: 96507;  load averages:  0.00,  0.00,  0.00                            up 5+04:46:52  19:08:27
25 processes:  1 running, 24 sleeping
CPU 0:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 1:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 2:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 3:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 4:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 5:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 6:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 7:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 12M Active, 7956K Inact, 37M Wired, 1088K Cache, 13M Buf, 1941M Free
Swap: 4096M Total, 4096M Free

   2) top 명령에서 -a 옵션으로 프로세스의 argument를 볼 수 있다.

  [ 옵션 사용전 ]
  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
39948 coffeenix   1  44    0  8432K  2792K select 0   0:23  0.00% sshd
  857 root        1  44    0  5880K  2372K select 1   0:04  0.00% sendmail
  867 root        1   8    0  3212K  1036K nanslp 2   0:01  0.00% cron

  [ top -a ]
  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
39948 coffeenix   1  44    0  8432K  2792K select 0   0:23  0.00% sshd: coffeenix@ttyp0 (sshd)
  857 root        1  44    0  5880K  2372K select 1   0:04  0.00% sendmail: accepting connections (sendmail)
  867 root        1   8    0  3212K  1036K nanslp 2   0:01  0.00% /usr/sbin/cron -s

   3) vmstat  -P 옵션으로 CPU별 통계를 볼 수 있다. (이 옵션은 FreeBSD 6.4에서도 사용 가능)

# vmstat -P 1
 procs      memory      page                    disks     faults         cpu0     cpu1     cpu2     cpu3    
 r b w     avm    fre   flt  re  pi  po    fr  sr da0 da1   in   sy   cs us sy id us sy id us sy id us sy id
 0 0 0  82940K   891M    29   0   0   0    29   7   0   0   16  100  449  0  0 100 0  0 100 0  0 100 0  0 100
 0 0 0  82940K   891M     1   0   0   0     0   0   0   0    7  117  370  0  1 99  0  0 100 0  3 97  0  0 100

   4) traceroute 명령에서 -a옵션으로 AS number도 함께 볼 수 있다.

   5) arp 명령에서 reject와 blackhole 키워드를 지원한다.

   6) cp 명령에서 -a 옵션(archive mode)을 지원한다. -RpP 옵션과 동일. 리눅스의 GNU cp 옵션과 동일하다고 보면 된다.

4. /etc/sysctl.conf.local 설정 파일

   rc 스크립트(/etc/rc.d/sysctl)에서 /etc/sysctl.conf 로딩한 후에 /etc/sysctl.conf.local 설정도 로딩하도록 되어 있다.
   따라서 서버별 개벌 설정은 sysctl.conf를 수정하지 않고 /etc/sysctl.conf.local에 넣어도 된다.

5. truss 명령

   truss는 리눅스의 strace, 솔라리스의 truss처럼 프로세스의 시스템 콜을 추적한다. FreeBSD 6.x 버전에서는 truss를 사용하기 위해서 아래처럼 process 파일시스템을 /proc에 마운트 해줘야 했다. 그러나 FreeBSD 7.0부터 더이상 procfs 파일시스템에 의존하지 않기 때문에 mount_procfs 명령을 사용할 필요없이 시스템 콜을 추적할 수 있다.

   # mount_procfs /dev/procfs /proc

   사용예) truss ls

   -f 옵션을 사용하면 fock되는 프로세스까지 추적할 수 있다.

6. 부트로더의 변경으로 USB에서 부팅할 수 있고, GPT 레벨 디스크에서 부팅할 수 있다.

* 2008/04/18 - [IT이야기] - FreeBSD 7 관련 도서 2권
* 2008/03/11 - FreeBSD 7.0과 Linux 간의 성능 비교
* 2008/03/07 - [시스템이야기] - FreeBSD 7.0 사용기
* 2008/02/28 - [시스템이야기] - FreeBSD 7.0 릴리즈

Posted by 좋은진호