유닉스를 능숙하게 사용하기: !$#@*%
일단 시스템에 문제가 생기거나 점검을 수행할 때, 프로세스를 확인하는 것은 흔한 일이다.
시스템의 퍼포먼스가 떨어졌다던가. I/O가 느려졌다던가.
이유를 찾기 위해선 어떤 프로세스가 CPU나 DISK를 얼마나 점유하고 있는지 찾고,
평소에 그렇지 않은데, 지금 그러한 이유가 무엇인지 찾아나가는 순서로 진행된다.
프로세스를 확인 해 보자.
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jul 27 - 0:05 /etc/init
root 53442 151674 0 Jul 27 - 0:00 /usr/sbin/syslogd
root 57426 1 0 Jul 27 - 0:00 /usr/lib/errdemon
root 61510 1 0 Jul 27 - 23:55 /usr/sbin/syncd 60
root 65634 1 0 Jul 27 - 0:00 /usr/ccs/bin/shlap64
root 86102 1 0 Jul 27 - 0:00 /usr/lib/methods/ssa_daemon -l ssa0
.
(중략)
.
root 315646 151674 0 Jul 27 - 0:00 /usr/sbin/lpd
root 319664 1 0 Jul 27 - 0:00 /usr/atria/etc/albd_server
root 340144 168018 0 12:34:56 - 0:00 rpc.ttdbserver 100083 1
root 376846 168018 0 Jul 30 - 0:00 rlogind
cormany 409708 569522 0 19:29:27 pts/1 0:00 -ksh
root 569522 168018 0 19:29:26 - 0:00 rlogind
cormany 733188 409708 3 19:30:34 pts/1 0:00 ps -ef
root 749668 168018 0 Jul 30 - 0:00 rlogind
실행중인 프로세스만 가지고는 상세한 정보를 알기가 어렵다. 기교를 조금 부려보자.
awk -v _MAX_PID=200000 '{if ($2 > _MAX_PID) {print "PID for
process",$8,"is greater than", _MAX_PID}}'
PID for process /usr/sbin/rpc.statd is greater than 200000
PID for process /usr/sbin/rpc.lockd is greater than 200000
PID for process -ksh is greater than 200000
같은 명령어에서 파생된 결과지만 결과의 질은 달라진다. 내가 원하는 정보를 보다 효율적으로 손쉽게 접해보자.
원문 : http://www.ibm.com/developerworks/kr/library/au-spunix_clitricks/
'IBM dW review' 카테고리의 다른 글
웹페이지 로딩 속도 단축을 위한 설계 (0) | 2009.07.28 |
---|---|
초보자를 위한 유닉스 팁과 기교, Part 4 (0) | 2009.01.31 |
유지보수하기 쉽고 확장성 있는 XML 형식 만들기 (0) | 2009.01.31 |
유용한 C 프로그램 구현 지침 (0) | 2008.12.31 |
inode에 대한 모든 것 (0) | 2008.12.31 |
초보자를 위한 유닉스 팁과 기교, Part 4
거두절미하고 아주 짧은 셸 코드 하나를 보자.
위 코드는 현재 디렉토리의 파일 이름이 정확히 2글자인 모든 파일의 확장자를 .ppm 으로 변경한다.
i는 파일이며 ??는 파일의 글자 수이다. 루프 내는 for문의 조건이 만족되는 경우 $i를 $i.ppm으로 변경하는 간단한 코드이다. 하나 더 보자.
# baseconv: 진법을 변환하는 간단한 스크립트
#
NUMBER=1
while [ $NUMBER ]; do
read -p "Input base: " IN
read -p "Output base: " OUT
read -p "Number: " NUMBER
bc -ql <<- EOF
obase=$OUT
ibase=$IN
$NUMBER
EOF
done
위 코드는 숫자를 입력 진법에서 출력 진법으로 변환한다. 간단하다. 튜토리얼에 모두 설명된 부분.
이번 튜토리얼은 일전에 몇 번 소개되었던 셸 스크립트 관련 아티클에 비해 자세하다. 일전의 아티클을 먼저 읽어 보는 것도 좋을 것 같다. 셸 스크립트의 강력함은 말로 다 할 수 없다. 배워봅시다.~
유용한 인라인 셸 코드들도 존재하니 많은 참고가 되겠다.
원문 : http://www.ibm.com/developerworks/kr/library/tutorial/au-unixtips4/index.html
'IBM dW review' 카테고리의 다른 글
웹페이지 로딩 속도 단축을 위한 설계 (0) | 2009.07.28 |
---|---|
유닉스를 능숙하게 사용하기: !$#@*% (0) | 2009.01.31 |
유지보수하기 쉽고 확장성 있는 XML 형식 만들기 (0) | 2009.01.31 |
유용한 C 프로그램 구현 지침 (0) | 2008.12.31 |
inode에 대한 모든 것 (0) | 2008.12.31 |
유지보수하기 쉽고 확장성 있는 XML 형식 만들기
XML은 이제 선택이 아니라 필수가 되어가고 있다.
구조적인 문서와 데이터를 교환하기 위한 통신 형식으로 충분한 계획/설계 없이 개발 중에 즉흥적으로 선택하는 경우가 많다. 올바른 XML 형식의 설계가 선행되어야, 통신에 참여하는 모든 이들의 요구를 만족시킬 수 있다. 한 개의 XML 스키마를 유지보수 하는 일은 상대적으로 간단하다. 그러나 수백 개 조직에 영향을 미치는 변화는 엄청난 충격이 될 수 있다. 이번 아티클에서는 이 충격을 관리하고 최소화 하는 두 가지 논제에 대해 다룬다.
원문 : http://www.ibm.com/developerworks/kr/library/x-extensxml.html
'IBM dW review' 카테고리의 다른 글
유닉스를 능숙하게 사용하기: !$#@*% (0) | 2009.01.31 |
---|---|
초보자를 위한 유닉스 팁과 기교, Part 4 (0) | 2009.01.31 |
유용한 C 프로그램 구현 지침 (0) | 2008.12.31 |
inode에 대한 모든 것 (0) | 2008.12.31 |
초보자를 위한 유닉스 팁과 기교, Part 3 (0) | 2008.12.31 |
그리하여 당신은 누구신가요
왜 이리 급한가요
내 발은 1분에 다섯걸음, 2분에 아홉걸음.
내 눈은 이 쪽에 나무 한 번, 저편에 눈꽃 한 번.
그리 급히 가시면 난 당신을 쫓을 수도 품을 수도 없어요.
움츠린 표정으로 창백하게 돌아선 당신은,
구름을 휘몰고 햇빛을 장대삼아 휘청휘청 잘도 떠나십니다.
고개 떨군 날 두고, 왜 이리 급한가요.
'일상다반사' 카테고리의 다른 글
너무나도 멋진 4족 보행 로봇 (0) | 2009.04.18 |
---|---|
프로그래머와 예술가의 양성 (3) | 2009.03.06 |
2009 (0) | 2009.01.08 |
연휴 정리 (0) | 2008.12.29 |
christmas eve (0) | 2008.12.25 |
Google 입사 시험 문제
구글 입사 시험 문제. 시간날 때 한 번 풀어보는 것도 좋겠다.
1. 당신은 똑같은 사이즈의 볼을 8개 갖고 있습니다.그 중에 7개는 같은 무게를 지니고 있으나, 한 개는 다른 것에 비해 살짝 무겁습니다. 저울을 2번만 사용해 살짝 무거운 이 볼을 찾아내려면 어떻게 해야 할까요?
2. 시계를 보니 3시 15분입니다. 시침과 분침사이의 각도는?
3. 고속도로에서 30분 동안 승용차가 존재할 확률이 0.95 라고 할 때, 10분 동안 존재할 확률은 얼마가 될까요? (확률은 일정하다고 가정합니다.)
4. 어떤 나라에서 사람들은 태어나는 아이 모두 "남자아이"만을 원하고 있었습니다. 그런 연유로 그 나라의 어느 가정에서도 남자아이가 태어 날 때까지 계속 아이를 낳았습니다. 이 나라의 남녀 인구 비율은 어떻게 될까요?
5. 시계의 시침과 분침은 하루 몇 번 겹치게 됩니까?
6. 당신의 8살된 조카에게 "데이터베이스"에 관해 세 가지 문장으로 설명해 보세요.
7. 어떤 마을에 100쌍의 부부가 있습니다. 남편들은 전원 바람을 피고 있습니다. 아내들은 전원 "자기의 남편" 이외의 남자들이 바람을 피고 있다고 생각합니다. 이 마을의 정해진 법률은 외도와 간통을 허락하지 않습니다. 또한, 누구든 자기의 남편이 바람 피고 있다는 사실을 알게 되면, 즉시 자신의 남편을 죽이는 규율이 있습니다. 이 마을의 여성들은 "규율"을 어기지 못 합니다. 어느 날, 마을의 왕비가 말했습니다. 이 마을에는 외도하고 있는 남자가 적어도 한 명은 있다. 자, 이 마을에는 무슨 일이 벌어질까요?
'공장 이야기' 카테고리의 다른 글
싱가폴 출장 (FAPL 31.Aug-06.Sep) (1) | 2009.10.05 |
---|
사랑하는 선배, 후배들 만나게 해 주셔서 감사합니다.
좋은 동료, 직장 선배에게 보살핌 받게 해 주셔서 감사합니다.
내 하루가, 내 일년이, 내 인생이 아름답습니다.
술 한잔 생각나는 날, 전화한통 날리면 소주 한 잔 기울일 수 있는 사람 있게 해 주셔서
감사합니다.
혼자 있기 싫은 날, 전화한통 때리면 쪼르르 달려와 커피 한 잔 할 수 있는 사람 있게 해 주셔서
감사합니다.
출근 길, 뜨겁고 진한 아메리카노 한잔 들고 회사 로비에서 사람들과 인사를 나누고,
좋아하는 우리 팀, 우리 부서 사람들과 하루종일 부대끼며 일하고 농담하고 밥먹고,
퇴근 길, 이어폰 귀에 꼽고 여유롭게 인사동 거리를 걷고,
즐겁게 스노우 보드 탈 수 있는 주말, 그리웠던 사람도 만나고,
서점 구석에 궁뎅이 깔고 앉아 책도 보고, 피아노도 치고, 술도 한 잔 하고,
부족함 많은 삶, 사랑으로 가득차게 해 주셔서 감사합니다.
이젠 이러한 제 인생, 밝혀 줄 아름다운 사람 하나만 옆에 서게 해 주세요.
욕심이라는 거 알지만, 그래도 굳이 새해 소원을 빌자면 그렇습니다.
늘 감사하고, 노력하며 살겠습니다~
'일상다반사' 카테고리의 다른 글
프로그래머와 예술가의 양성 (3) | 2009.03.06 |
---|---|
그리하여 당신은 누구신가요 (0) | 2009.01.28 |
연휴 정리 (0) | 2008.12.29 |
christmas eve (0) | 2008.12.25 |
소설 책을 고를 때. (0) | 2008.12.15 |
ZFS manual
'유닉스' 카테고리의 다른 글
Linux, bonding. (0) | 2009.02.13 |
---|---|
쉘 스크립트를 사용하면 안되는 경우 (0) | 2009.02.08 |
Solaris Disksuite simple manual (0) | 2008.11.24 |
pkgadd 오류: admin 파일 <default>를 열 수 없습니다. (0) | 2008.11.11 |
SSH setting for solaris8 (0) | 2008.08.26 |
유용한 C 프로그램 구현 지침
int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell\ o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i); |
코드는 내가 작성하지만, 나만 보는 것은 아니다. 그리고, 나만 본다 하여도 이 코드를 언제 다시 살펴보게 될 지는 알 수 없다. 수직 공백과 수평 공백, 들여쓰기와 띄어쓰기를 적절히 활용하여 코드 블록 구조를 효과적으로 표현하고, 주석을 반드시 달되 불필요한 주석은 피한다. 명명규칙을 따르고, 변수 이름, 함수 이름을 효과적으로 정의하고, 선언의 방법과 헤더파일의 선언규칙을 따른다.
항상 오류를 방지하는 방식으로 코드를 구현하고, 코드의 의도를 명확히 밝히는 프로그램을 작성한다.
그 외에도 C프로그램을 작성하면서 지켜야 할 것, 주의해야 할 것 들을 알려주고 있다.
소프트웨어는 유지보수에 상당한 노력과 비용이 소모된다는 사실은 누구나 잘 알고 있다. 이식이 불가능한 비표준 기능을 사용하고, 바람직하지 못한 방식으로 코드를 구현하는 잘못된 습관은 유지보수를 더욱 어렵게 만든다. 아래 원문에서 오랫 동안 유용하게 활용할 구현 지침을 익혀보자
원문 : http://www.ibm.com/developerworks/kr/library/au-hook_duttaC.html
'IBM dW review' 카테고리의 다른 글
초보자를 위한 유닉스 팁과 기교, Part 4 (0) | 2009.01.31 |
---|---|
유지보수하기 쉽고 확장성 있는 XML 형식 만들기 (0) | 2009.01.31 |
inode에 대한 모든 것 (0) | 2008.12.31 |
초보자를 위한 유닉스 팁과 기교, Part 3 (0) | 2008.12.31 |
zero copy 기법을 통한 효율적인 데이터 전송 (0) | 2008.12.01 |
inode에 대한 모든 것
inode 테이블은 개별 파일 시스템을 위한 inode 숫자 목록을 포함한다. 사용자가 파일에 접근하려면, 유닉스 시스템은 올바른 inode 번호로 inode 테이블을 탐색한다. inode 번호를 발견하면, 사용자가 내린 명령이 inode에 접근해서 가능하다면 적절한 변경 작업을 진행한다.
파일과 디렉토리는 inode의 도움 없이는 유닉스 세상에서 거의 쓸모가 없다.
inode로 작업하는 방법을 익히려면 시간도 많이 필요하며 짜증도 난다. 아래 원문의 내용을 읽어가면서 inode에 대해 모를 때 겪었던 두통거리 몇 가지를 완화해보자.
원문 : http://www.ibm.com/developerworks/kr/library/au-speakingunix14/
'IBM dW review' 카테고리의 다른 글
유지보수하기 쉽고 확장성 있는 XML 형식 만들기 (0) | 2009.01.31 |
---|---|
유용한 C 프로그램 구현 지침 (0) | 2008.12.31 |
초보자를 위한 유닉스 팁과 기교, Part 3 (0) | 2008.12.31 |
zero copy 기법을 통한 효율적인 데이터 전송 (0) | 2008.12.01 |
고급 셸 스크립트 기법 (0) | 2008.11.30 |
초보자를 위한 유닉스 팁과 기교, Part 3
사전적으로는 이물질을 걸러내는 장치로 풀이된다.
데이터가 너무 많다 보니 내가 필요한 데이터를 걸러내기란 쉬운 일이 아니다. 이번에는 유닉스 필터에 대해 알아보자. grep, sed, awk 등 세가지 명령행 도구는 자료를 검색하고 조작하는 속력이 훨씬 빨라진다.
grep을 사용하여 파일 내용을 효율적으로 검색하고, sed를 이용하여 많은 파일을 일괄적으로 편집하고, awk는 입력 행에 있는 각 문자열의 단어별 참조를 가능하게 하며, 스크립트로 구현하는 코드에서 변수로도 참조가 가능하게 한다.
원문 : http://www.ibm.com/developerworks/kr/library/tutorial/au-dw-au-unixtips3-i.html
'IBM dW review' 카테고리의 다른 글
유용한 C 프로그램 구현 지침 (0) | 2008.12.31 |
---|---|
inode에 대한 모든 것 (0) | 2008.12.31 |
zero copy 기법을 통한 효율적인 데이터 전송 (0) | 2008.12.01 |
고급 셸 스크립트 기법 (0) | 2008.11.30 |
IBM developerworks 늦가을 행사 "개발자들의 수다"로 초대합니다. (0) | 2008.11.03 |