Linux2009. 8. 7. 16:08
머.. 스크립트라고 해서 다를 건 없었다.

그냥 execl("경로 + 파일명", "파일명", "인자1", ... , NULL);

예를 들어
/root/test.sh를 실행하고 eth0 down 이라는 인자가 필요 하다면

execl("/root/test.sh", "test.sh", "eth0", "down", NULL);
이렇게 하면된다.



참 쉽죠잉?

[링크 : http://www.gnu.org/software/libc/manual/html_node/Process-Creation-Example.html]
[링크 : http://www.opengroup.org/onlinepubs/009695399/functions/exec.html]

'Linux' 카테고리의 다른 글

ifconfig broadcast 설정 안해도 된다!  (0) 2009.08.10
ifconfig Bcast 계산방법  (0) 2009.08.07
busybox route 명령어  (0) 2009.08.06
grep -r 옵션은 주의!  (0) 2009.08.06
쉘스크립트 - 변수 / 변수 치환  (2) 2009.08.04
Posted by 구차니
하드웨어2009. 8. 7. 02:08
저렴하게 구매한 녀석이 발열이 심하고 팬이 너무 돌아서
걱정되서, 돈을 투입했는데.. 결과는 오히려 마이너스..

솔찍히 2500rpm 고정 쿨러라서 조용하긴한데, 확실히 BIOS상에 리포팅되는 온도는 약간 올랐다.
이전에는 intel 정품 쿨러 4600rpm 까지 치솟는 바람에 책상이 진동을 했는데 말이다.


아무튼 한참을 검색했더니 노스우드가 아니라
프레스캇이다.

2.66Ghz에서 socket 775는 노스우드에는 없고 프레스캇이 있는데..
프레스캇은 프레스핫이라고 할정도로 발열이 심한 비운의 녀석이다.
모델명은 프레스캇 506


HT도 없고, 듀얼도 아니고
애매한 녀석에 발열만 무지 심하고
최대 작동 온도가 67.7도 라는데, 웬지 idle에서 60도를 넘나드는데..
(물론 이전 쿨러로는 54도 정도 나왔는데 4600rpm 돌파..)

[링크 : http://www.cpu-world.com/CPUs/Pentium_4/Intel-Pentium%204%20506%202.66%20GHz%20-%20JM80547PE0671MN%20-%20HH80547PE0671MN%20%28BX80547PE2667EN%29.html]

'하드웨어' 카테고리의 다른 글

CVBS / RGB - SCART  (2) 2009.09.23
풀업 / 풀다운 저항(Pull up / Pull down register)  (4) 2009.08.13
LGA775/Socket478  (4) 2009.08.04
VT-d  (0) 2009.07.30
multicast MAC Address  (2) 2009.07.02
Posted by 구차니
Linux2009. 8. 6. 17:22
# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    *               255.255.255.0   U     0      0        0 eth0
default         192.168.10.1    0.0.0.0         UG    0      0        0 eth0

route 명령은 라우팅 테이블에 추가/삭제를 하는데 사용된다.
일단 눈에 들어 오는것은 Flags로 U / UG 라는 것이 있다.

       Flags  Possible flags include
              U (route is up)
              H (target is a host)
              G (use gateway)
              R (reinstate route for dynamic routing)
              D (dynamically installed by daemon or redirect)
              M (modified from routing daemon or redirect)
              A (installed by addrconf)
              C (cache entry)
              !  (reject route)

이러한 의미인데, UG라고 되어 있으면, route is up / use gateway라는 의미이다.
간단하게, 이 녀석이 게이트웨이라는 의미로 받아들이면 될 듯 하다.

아무튼,
ip route flush all로 모든 라우팅 테이블을 비우고 나서
route add default dev eth0를 하면

# route add default dev eth0
# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         *               0.0.0.0         U     0      0        0 eth0

이렇게 Genmask 값도 다르고, Flags도 U로 체크가 된다.

아무튼 의도대로 UG가 찍히게 하려면,
조금은 거리가 멀어 보이는 ifconfig를 이용해야 한다.

udhcpc의 default.script 내용인데
#!/bin/sh
# Sample udhcpc renew script

RESOLV_CONF="/etc/resolv.conf"

[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"

/sbin/ifconfig $interface $ip $BROADCAST $NETMASK

if [ -n "$router" ]
then
        echo "deleting routers"
        while /sbin/route del default gw 0.0.0.0 dev $interface
        do :
        done

        metric=0
        for i in $router
        do
                /sbin/route add default gw $i dev $interface metric $((metric++))
        done
fi

이런식으로 라우팅 테이블을 추가하게 된다.



결론 : IP 관련 설정은 ifconfig - route 순으로 진행하면 된다.

----
2011.11.08 추가
여기서보면 flag 상태가 있는데 여기서 flag값의 의미는 다음과 같습니다.

U = Route is "UP"
H = Route is for a single host
G = Route requires a hop across a gateway

즉 다시 말씀드리자면 UP은 destination까지의 경로가 살아있다는 얘기입니다. 거의 대부분은 다 UP상태입니다. 그리고 H는 destination이 network 주소가 아니라 single host일 경우가 됩니다. 그리고 G는 destination까지의 경로가 router를 거친다는것을 의미합니다. 그리고 U만 있는경우는 destination이 network주소일 경우입니다.
 
[링크 : http://h30499.www3.hp.com/t5/HP-UX/route-add-및-delete-에-관한-자료/td-p/1165815?profile.language=ko ] 



Posted by 구차니
어쩌면 당연한걸지도 모르겠지만..
리눅스와 윈도우의 개행은 CR+LF / LF로 차이가 크다.

vi에서 보면
CR+LF는 ^M이 붙는데,
이로 인해서 쉘에서 인식을 제대로 못하고
실행을 못하는 문제가 생긴다.


bash에서는 문제가 없었던거 같은데.. 흐음..
아무튼 busybox에서 사용하는 ash의 경우에는 CR+LF의 경우에는
제대로 안되니 반드시 확인을 해야한다.


(이걸로 일주일 공쳤네 ㄱ-)
Posted by 구차니
Linux2009. 8. 6. 10:13
저번에 두번 정도 시스템 말아 먹은 강력한 녀석인데..
버그인지 모르겠지만

grep -rnI "keyworld" ./ > log.find

이런식으로 검색을 하면, 검색이 끝나지 않고 파일이 무한대로 커지는 문제가 있다.
저렇게 언제 끝나나 냅두고 있으면... 시스템 뻗으니 주의!!!
Posted by 구차니
제목이랑은 조금 심하게 다르지만..

busybox-1.10.1/networking/ping.c 의 소스를 보면
enum {
    DEFDATALEN = 56,
    MAXIPLEN = 60,
    MAXICMPLEN = 76,
    MAXPACKET = 65468,
    MAX_DUP_CHK = (8 * 128),
    MAXWAIT = 10,
    PINGINTERVAL = 1, /* 1 second */
};

라는 부분에 timeout 10초와 핑간격 1초가 정의되어 있다.
어짜피 alarm() 함수가 integer 만 받아서 소수점은 무리이므로
ping -c 를 이용하여 빠르게 핑 테스트는 힘들듯 하다.

다른 방법으로 접근을 하자면,
ping -c 1 ... ; ping -c 1 ...
이런식의 명령행으로 할 경우 1초 간격없이 빠르게 핑을 연속으로 보낼 수 있다.
Posted by 구차니

AVR Studio에서 읽은 us-technology.co.kr에서 판매하는 보드의 기본 퓨즈 비트 설정값이다.
CKOPT가 원래 체크 되어 있어야 했던거 같은데 흐음..
Posted by 구차니
하드웨어2009. 8. 4. 23:07
 

Socket 478 / LGA 775

보아하니.. 쿨링이 안되서 컴퓨터가 죽어 나는거 같은데..
쿨러를 교체하려고 하니 머가 먼지 하나도 모르겠다... (세상은 나를 기다려주지 않는건가!!!)
아무튼 CPU는 Pentium4 2.66Ghz 인데 아무리 찾아도 478용으로 나오는 쿨러가 아닌 생김새를 하기에
고심을 하다보니, LGA775라는 것이 나왔는데..


Socket 478용 쿨러 / LGA 775용 쿨러

이렇게 생김새가 다르다. 아무튼 지지대 모양 자체가 다르니 주의를 해야 할 듯.

[링크 : http://en.wikipedia.org/wiki/Socket_478]
[링크 : http://en.wikipedia.org/wiki/LGA_775]

'하드웨어' 카테고리의 다른 글

풀업 / 풀다운 저항(Pull up / Pull down register)  (4) 2009.08.13
프레스캇!  (10) 2009.08.07
VT-d  (0) 2009.07.30
multicast MAC Address  (2) 2009.07.02
MAC 어드레스는 48비트 앞은 OUI 뒤는?  (0) 2009.06.24
Posted by 구차니
개소리 왈왈2009. 8. 4. 22:14
리눅스 머신이 시끄러워서 파워 문제인줄 알았더니..
쿨링문제이거나, 다른 문제인것 같다.

예전에 250W 에서 350W로 올렸음에도 불구하고,
파워가 엄청 뜨겁다...

일단은 cpu 쿨링을 위해 써멀 구리스 부터 하나씩 차근차근 발라주어봐야겠다..
머.. micro-ATX 파워야, 콘덴서도 부풀어 있었으니 미리미리 갈아 주는게 좋았겠지?
(라고 자기 위안중)

'개소리 왈왈' 카테고리의 다른 글

프레스~~~~핫!! 2  (4) 2009.08.10
지 아이 조 - G.I.JOE (2009)  (4) 2009.08.08
질렀노라 긁었노라 왔노라!!!  (0) 2009.07.30
몸이 아프면!  (8) 2009.07.24
네이버 블로그 많이 변했네 & 이건 모하는 꼬꼬마?  (2) 2009.07.21
Posted by 구차니
Linux2009. 8. 4. 15:45
bash 쉘 스크립트에서 변수를 선언하는 방법은 다음과 같다.
VARIABLE=VALUE

그리고 변수를 읽는 방법은 다음과 같다.
VAR2=$VARIABLE

아무튼, 다른 변수에 변수들을 조합해서 내용을 넣는데
공백이 들어가는 문자열의 경우에는 한번에 변수로 들어가지 않는다.
$ test=123 456 789
-bash: 456: command not found

그런 이유로, 문자열은 " "로 넣어주어야 한다.
$ test="123 456 789"

' '는 안에 변수가 있다고 하더라도 치환하지 않고 그냥 출력한다.
$ test="123 456 789"
$ echo '$test'
$test

{}는 함수이다. 즉, 어떠한 내용을 변형 후 값으로 사용하려면 ${} 라고 하면된다.
()는 변수를 감싸준다. 그냥 $(VAR) 이런식으로 사용한다.

선언되지 않은 변수를 사용할 경우에는 null 문자이므로 출력되지 않으나(bash에서)
busybox(ver 1.10.1) 에서는 오작동을 하는 문제가 보였다.

예를 들어
VAR="test string $undefined hello world"를 출력하려고 하면
hello world만 나온다.


참고 링크
[링크 : http://kaludin.egloos.com/2334564]
[링크 : http://wiki.kldp.org/HOWTO//html/Adv-Bash-Scr-HOWTO/index.html]

'Linux' 카테고리의 다른 글

busybox route 명령어  (0) 2009.08.06
grep -r 옵션은 주의!  (0) 2009.08.06
bash - eval  (0) 2009.08.03
/proc/cmdline 내용 읽어오기  (0) 2009.08.03
setenv() - change or add an environment variable  (4) 2009.08.03
Posted by 구차니