'분류 전체보기'에 해당되는 글 58건

  1. 2007.06.20 어떤 디렉토리 안의 전체 파일 내용 바꾸기 by 하루하루
  2. 2007.06.18 모니터링 스크립트 만들기. with perl by 하루하루
  3. 2007.06.16 우리회사는 이렇게 되지 맙시다.. by 하루하루
  4. 2007.06.15 공부할 것 by 알 수 없는 사용자
  5. 2007.06.15 eFolderSD 설치는 로컬에 by 알 수 없는 사용자
  6. 2007.06.10 잘하고 있나? by 알 수 없는 사용자
  7. 2007.05.25 우분투 freemind 설치 후 한글이 안되었을 때(자바 설정 문제임 ^^) by 알 수 없는 사용자
  8. 2007.05.18 ubuntu 시간맞추기(timezone 변경해서 맞추는 방법) 2 by 알 수 없는 사용자
  9. 2007.05.18 워크샵 두번쨰 사진... 1 by 알 수 없는 사용자
  10. 2007.05.15 성공이란 by 알 수 없는 사용자
쉘 스크립트입니다.
보통 작업을 하다가 보면, 어떤 특정한 디렉토리안의 모든 파일에서 특정한 문자열을 전부 바꿔주어야 하는 경우가 종종 있습니다.
이럴때는 다음과 같이 One line Script 를 기억해 주시길 바랍니다. ^^


[]# for filename in $(ls -l targetdir | grep -v '^d' | awk '{print $8}'); do  sed -e 's/OLD STRING/NEW STRING/g' targetdir/$filename > NEWDIR/$filename; done;


Posted by 하루하루

오늘은 코드 이야기좀 하겠습니다.  일종의 삽질기 입니다...;;
고수분들이 보시면 황당한 해법일 수도 있겠으나, 나름 고민한 최선의 방법 이네요. 크흑.
더 좋은 방법을 알고 계시면 트랙백 달아주세요....


어떤 데몬의 모니터링 스크립트를 만들다 보면 다음과 같은 문제점에 봉착할때가 있습니다.

해당 데몬이 제 역할을 수행하고 있는지를 확인하는데 사용하는 tool 로써 'monitorTool' 이라는게 있다면 보통 다음과 같이 실행을 시켜 보겠지요

[]# monitorTool example.co.kr


그럼 결과는 보통 3가지로 나타나게 됩니다.

1. OK
2. FAIL
3. WAIT

해당 툴을 가지고 모니터(상태 체크) 스크립트를 짤때 문제가 되는것은 3번 입니다. 시간이 중요한 상태체크에서 WAIT 가 걸려 버리면, 보통 일정 TIMEOUT을 주고 해당 시간이 지나서 리턴이 되게 되면 FAIL 로 처리하게 됩니다.

이게 보통의 로직이죠. 그런데, perl 과 같은 스크립트에서 다른 바이너리 명령어를 써서 모니터링을 할때는 이런 처리를 하기가 쉽지 않네요.

왜냐하면 보통 외부 프로그램을 실행 시킬때는 exec()  , system() , open() 함수로 실행을 하기 때문이지요.  이때  메인 스크립트에서 TIMEOUT 을 줄수 있는 방법은 없습니다. ( 혹시 아시는분 트랙백....혹은. 댓글.... 부탁 드려요..) 그래서 저는 c로  monitorTool를 실행할 컨테이너를 하나 만들었습니다. c 에서는 쓰레드로 빼서, TIMEOUT을 줄 수 있으니 가능 하더군요.

perl 스크립트 에서..

...
open(FH, "./runMonitorTool $REMOTE_HOSTNAME |");
my $ret = <FH>;
...

이런식으로 하면,  runMonitorTool 이라는 c 프로그램이 찍는 output 메세지 들을 FH 에서 받을 수가 있습니다. 따라서, C 프로그램에서 상태에따라 다른 값을 넘겨주면 좀더 세세한 제어가 가능해 지겠죠.

TIMEOUT 문제는 해결된거 같은데 아직 문제는 남아 있습니다.
monitorTool 이 사용자에게 알려주는 정보는 해당 시스템이 괜찮다 아니다를 메세지를 찍어서 보여주게 된다고 가정을 하면, 지금까지 한 프로그램은 큰 오류가 있습니다. WAIT에 걸리지 않고, 장애시 바로 리턴하게 되면 이때도 장애로 인식하지 않는것이죠. TIMEOUT에 걸리지 않았으니까요.

이 문제를 해결하기 위해서는 monitorTool 이 뿌려대는 메세지를 파싱해서 장애 판단을 해야 합니다. 하지만, C 에서 외부 프로그램을 실행하고, 그 외부 프로그램이 실행하면서 뿌려대는 메세지를 받을수가 없더군요. ( 이것또한 방법을 아시는 분은 저에게 트랙백이나.. 댓글을...쿨럭..;;;; ) 하지만, 프로그램이 실행후 끝나는 종료 코드는 얻어 올수 있지요.

그래서, 마지막으로 monitorTool 을 실행시킬 perl 코드를 짭니다. -_-;;; perlRunMonitor.pl 을 만듭니다. 이넘은 무슨 짓을 하냐면 단순히 monitorTool 을 실행시키고 메세지를 받아서 파싱하여 장애 판단후 종료 코드를 주어서 종료합니다.

이를테면 다음과 같죠

#!/usr/bin/perl

.....
open (FH , "monitorTool server |");
my $statusOK = 0;

while(my $ret = <FH>) {
        if( $ret =~ /I am OK/g ){
                $statusOK =1;
                break;
        }
}

close FH;

if( $statusOK == 0 ){
        exit 1;
}

이렇게 되면, 지정된 OK  문자열이 파싱될경우를 제외하고는 종료코드 1을 리턴하게 됩니다. 지정된 OK 문자열이 파싱될경우에는 정상 종료를 하게 되지요.
그럼 C 에서는 종료 코드를 얻어와서 그에 맞게 처리해 주고, TIMEOUT 이 나면 이것또한 에러처리를 해주게 됩니다.

그럼 정리를 해보면 다음과 같습니다.

PERL Main Script  -> C Run Container -> Perl Run Script


아 삽질이군여. 좀더 좋은 방법을 아시면 알려주세요오오오....

Posted by 하루하루

한국 IT맨들..

IT 개발자들의 야근을 없애주세요

오늘 위 글을 읽었습니다.
저 사람은 정말 심각한 경우이긴한데요..
대부분의 SI업체들이 저렇게 생활한다고 듣습니다. 제 친구들도 SI업체에 있는 이들이 꽤 있으니까요...

우리회사는 아직 저렇지는 않습니다만,
지금과 같은 경영 마인드를 앞으로 회사가 망할때까지 유지했으면 좋겠습니다.
야근 안하고 일찍 퇴근하면, 열심히 안하는 사람이 되는 회사는 되지 말길 바래봅니다..

Posted by 하루하루

공부할 것

eFolder : 2007. 6. 15. 19:38
해야할 것인것 같네요.

전이사님이 보내준 책을 사서 교재로 삼을까 합니다.
그리고 재성이가 찾은 아래의 사이트는 한번 검토해 보고 넣을지 생각해보죠.

http://fresh.t-systems-sfr.com/unix/src/misc/openafs-1.4.4-src.tar.gz:a/openafs-1.4.4/src/WINNT/doc/install/Documentation/ko_KR/html/SysAdminGd/auagd002.htm#ToC
Posted by 알 수 없는 사용자

eFolderSD 설치는 로컬에

eFolder : 2007. 6. 15. 11:30
가만히 생각해보니 문제가 많으니 로컬에 설치를 하는 것이 나을 것 같습니다.
여러가지 클라이언트를 사용할 때 앞으로는 정식런칭할 때까지는 "로컬 -> 랩 -> 테스트서버/서비스 -> 정식릴리즈" 단계를 밟아서 가야될 것 같습니다.

일단 eFolderSD는 로컬에 깔도록 하고
설치 메뉴얼은 팀 폴더에 넣어놓도록 하겠습니다.

아... 쉽고 편하게 살기도 힘들군 ㅠㅠ ....  ^^;;;;

이상입니다.
그럼 수고하세요.
Posted by 알 수 없는 사용자

잘하고 있나?

Blar Blar : 2007. 6. 10. 22:45
이제 테스트 베드 중 하나만 덤프 뜨면 끝난다.
8개의 세트가 있는데 나는 컴파일만 하면 되니까 조합이 4개로 줄었다.
근데 이제 끝난다. 헐~

이제는 사고를 안쳐도 많은 생각을 한다.
아마 사고를 치기 전에 이제는 수위를 좀 아니까 그렇겠지? ^^;

잘하고 있는지 모르겠지만... 좀 힘드네.
주말을 다 일하느라... 근데 집에서 힘들긴 마찬가지고, 집사람도 마찬가지고... ㅠㅠ

내가 이 일을 하지 않는다면...
내가 잘하는 것은 무엇일까?
내가 즐길 수 있는 것은 무엇일까?
스트레스 안 받고 사는 방법은 무엇일까?

다 같은 고민들을 안고 살아가리라 생각한다.
항상 글을 적다보면 마지막에는 현재라도 열심히 해서 마무리를 잘 짓자라고 생각한다.
그리고 또 고민하고 마음 잡고... 이런 고리의 끝은 어디일지 모르겠다. ㅠㅠ
Posted by 알 수 없는 사용자
우분투 설치하고... ( 처음부터 한글로 하든... 영어로 하든... 현재 상태가 한글입력기는 있는 상태라고 가정한다.) freemind 를 설치한 다음에 한글을 적어넣지 못할 때.

나의 경우
OS : Ubuntu 7.04 Feisty Fawn
환경 : 초기 한글 설치로 한글 입력기 있음.
문제 : freemind 설치 후 메뉴에서 한글이 다 깨져나오며, 또한 한글 입력시 ㅁ 만 나오면서 제대로 입력이 안됨.

해결(=> 설치 history)
4. Freemind
   []# http://freemind.sourceforge.net/wiki/index.php/Main_Page
   []# sudo apt-get install java-package sun-java6-jre rhino libjcalendar-java librelaxng-datatype-java libjaxp1.2-java libcommons-lang-java libbsf-java
   []# Debian Linux - link click
   []# freemind_0.8.0-1_all.deb, freemind-plugins-help_0.8.0-1_all.deb, freemind-plugins-svg_0.8.0-1_all.deb
       freemind-plugins-time_0.8.0-1_all.deb, libforms-java_1.0.5-2_all.deb - Download
   []# Ref. : http://siliconchaos.blogspot.com/2006/05/setting-up-freemind-in-ubuntu-dapper.html
   []# libbatik-java_1.5.1-1_all.deb - Download
   []# sudo dpkg -i AllDownloadedFile
4.1 여기서 프로그램 자체에서 한글 세팅을 못가져옵니다.(이미 한글 세팅 다 되어 있음.)
    이유는 자바설치 시 기본적으로 잡는 한글 폰트의 path 가 틀리게 잡혀있기 때문입니다.
    이걸 바로 잡으면 한글이 제대로 나옵니다.
   []# cd /usr/lib/jvm/java-6-sun/jre/lib/
   []# sudo vi fontconfig.properties    : 실제 이 파일은  /etc/java-6-sun/ 에 링크된 파일입니다.
    filename.-misc-baekmuk_batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/batang.ttf
    filename.-misc-baekmuk_gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/gulim.ttf
     위 두줄이 잘못되어 있습니다. 각 ttf 파일 앞에 baekmuk 라는 디렉토리가 들어가면 됩니다. 다음과 같이 ^^
    filename.-misc-baekmuk_batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/baekmuk/batang.ttf
    filename.-misc-baekmuk_gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/baekmuk/gulim.ttf
   []# Ref. : http://www.ubuntu.or.kr/wiki.php/
          http://www.ubuntu.or.kr/wiki.php/MainPage
          http://www.ubuntu.or.kr/wiki.php/%ED%95%9C%EA%B8%80%EC%84%A4%EC%A0%95
          http://www.ubuntu.or.kr/wiki.php/JDK1.5%ED%95%9C%EA%B8%80%ED%99%94
          http://www.ubuntu.or.kr/wiki.php/JavaInstall
          http://www.ubuntu.or.kr/wiki.php/JDK1.5%ED%95%9C%EA%B8%80%ED%99%94#s-3

이상입니다.
그럼 수고하세요.
Posted by 알 수 없는 사용자
설치할 때 실수로 타임존을 엉뚱한 걸로 맞추어놓고 세팅했었네요.
그래서 기존에 사용했던 rdate, ntpdate 등을 사용해서 맞추어봤는데 잘 안되어서,
아예 타임존을 바꾸는 방법을 찾아서 세팅했습니다.

환경
OS : Ubuntu Feisty fawn 7.10
기존 타임존 : US/Eastern

바꾼 히스토리
[]# mv /etc/localtime /etc/localtime-ORIG
[]# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime


헐.... 이렇게 하는 방법을 취하기까지 시간 소비 좀 했습니다. ^^;

Posted by 알 수 없는 사용자
워크샵 두번째 사진!!
이제야 올립니다.
빨리 시차가 적응되어서, 빨리 원래 모습으로 돌아갔음 좋겠어요.
뭐 원래도 그리 열심히 사는 인생은 아니였지만 ㅋ
열심히 살아야지. 근데 몸이 무척 힘듭니다. 엉엉

걷기를 많이 안한탓에 다 차안에서 이동하면서 찍은 사진들이네요.

0123456789101112131415161718192021222324252627282930313233343536373839
Posted by 알 수 없는 사용자

성공이란

Blar Blar : 2007. 5. 15. 19:12
성공이란 끝없이 매진하는 것이란다.
일본의 기업가가 남긴 말 중에 몇가지를 음미해본다.

1. 집을 나오면 일곱의 적을 만난다.
이 말은 언제 어느때에 갑자기 적을 만나 목숨을 잃을지도 모르니, 늘 마음의 준비를 해야한다는 것이다.
당연히 그렇게 추측이 되고 그래야 한다고 생각한다.
그런데 여기서 한마디 더 하는 것이
"장군 한 사람의 공은 만 사람의 뼈가 부러진 끝에 이루어진다."
이 말은 거꾸로 휘하 군사를 위해 장군이 죽을 각오가 되어 있는가이다. 이걸 그대로 회사에 접목을 시켜볼 때....
우선 난 현재의 우리 사장을 그렇다고 생각한다. 그래서 그렇게 움직이려고 한다.
그럼 우리 팀 내에서는 어떨까? ^^;
그럴 각오가 되어 있다.
그렇기 때문에 이제는 당당하게 지시(?)를 하고자 한다.
사장님은 13명을 책임지기 위해 열심히 고민하지만 난 2명을 책임지기 위해 고민하므로 얼마나 편한가? ^^; ㅋㅋㅋ

2. 비가 오면 우산을 쓰라
자연의 이치에 순응하며 욕심을 부리지 말라는 말이다.
말은 너무 쉽고 당연하지만 실제로는 뜻밖이다. 나도 마찬가지이다.
주위에서 많이 도와주었으면 한다.

3. 사람을 잘 쓰는 비결
이건 정말 경우마다 틀리고, 상황마다 틀리다.
우선 나의 경우를 현재 시점에서 정리해 보자.
할 일은 많고 모르는 것이 많다. 그래서 주위 사람들에게 부탁을 하는데 부탁을 잘해야 하는 것이 요지가 될 것 같다.
이런 상황에서 들어야 할 말은 "열심히 하겠습니다.","꼭 해보고 싶습니다." 일 것이다.
나도 그런 말을 할 줄 알고, 또 들어야 할 것 같다.

4. 내가 생각하는 성공이란...
이게 해답이 없는 것이고 만들어가는 것이지 않을까 싶다.
위에 소개한 사람은 어떤 상황이든 초발심을 버리지 않고 매진한다면 상황이 변해서 기회가 되던, 매진하고 있는 모습을 보고 동조/원조의 손길이 뻗쳐 온다는 것이다.
어떻게 보면 운 같다 ^^;
사실 나도 운이 좋은 편이라 생각하며, 틀린 말은 아닌 것 같다.
그래서 나두 내가 생각하는 성공이라고 한마디 해 본다면...
"하루하루 성공하는 계획 속에 실천해 가는 것"이라고 말하고 싶다.

내 미래를 성공으로 그리고 있고 그것에 매진한다면 근처에만 가더라도 성공이지 않을까 싶다. ^^;

여러분은 어떠신지....
이것과 비슷한 것을 전에 재성이가 적은 것으로 기억나는데 한번 다시 봐야겠습니다.
참 그리고 제가 읽었던 글이 궁금하시다면 요청해 주세요. 따로 스크랩 해 놨습니다.

이상입니다.
Posted by 알 수 없는 사용자