728x90
반응형

리눅스 고수분들이야 필요없겠지만 초보자분들을 위해 간단한 팁하나.

 

저는 모니터링 명령어 몇개를 쓰고 있는데요.. htop, iptraf, iftop 등등...

 

명령어를 자주 사용하지 않으면 잊어버리게 되네요

 

그래서 모니터링 명령어 몇개를 하나의 명령어로 메뉴형식으로 만들어 봤습니다.

 

보다보면 응용 가능할거에요..

 

mon 이라고 치면  아래와 같이 나와서 선택만 하면 됩니다.

 

[KWSPOGO:root:/usr/bin] mon

 

1.htop
2.iotop
3.iptraf
4.iftop
5.nethogs

 

x or q to exit.

 

Select :

프로그램 하시는 분들은 간단하게 만들수 있겠지만 저같은 경우는 쉘스크립트를 이용했습니다.

 

 

우선 vi 나 nano 로 /usr/bin/mon 을 생성 합니다.

 

아래 스크립트를 입력 합니다.

 

---------------------------

 

#!/bin/sh

cmds="htop iotop iptraf iftop nethogs" #명령어종류 (등록하고싶은 명령어 등록)

 

while true #무한반복
do

 

    cnt=0

    echo ""

 

    for cmd in $cmds ; do #명령어 뿌려주기
        cnt=`expr ${cnt} + 1`
        echo "$cnt.$cmd"
    done

 

    echo "\nx or q to exit."

 

    echo -n "\nSelect : "

 

    read appno

 

    case "$appno" in # x나 q를 누르면 종료
        x|q) exit ;;
        "") continue
    esac

 

    cnt=0

    for cmd in $cmds ; do #해당 번호의 명령을 실행
        cnt=`expr ${cnt} + 1`
        if [ ${cnt} = ${appno} ]
        then
            $cmd
            break
        fi
    done

 

done

# ------------------- 여기까지 --------------

 

권한을 변경합니다.

chmod 755 /usr/bin/mon

 

간단하죠?

 

---------------------------- 내용 추가 --------------------

명령어에 공백 포함시(service samba restart 같은 매개변수가 있을때) 가능하도록 스크립트를 바꿔봤습니다.

우선 실행하면

 

[KWSPOGO:root:/usr/bin] mon


1.htop
2.iotop
3.iptraf
4.iftop
5.nethogs
6.service samba restart
7.service cron restart

 

x or q to exit.

 

Select : 6

 

Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.

 

스크립트내용은


#!/bin/sh

 

cmds="htop,iotop,iptraf,iftop,nethogs,service samba restart,service cron restart" #명령어 종류:명령어구분은 콤마(,) 로

cmds=`echo $cmds | sed -e 's/ /_/g'` #공백을 (_) 로 치환 (치환문자는 적절히 선택)

cmds=`echo $cmds | sed -e 's/,/ /g'` #콤마(,)를 공백으로 치환

 

while true #무한반복
do

 

    cnt=0

    echo ""

 

    for cmd in $cmds ; do #명령어 뿌려주기
        cnt=`expr ${cnt} + 1`
        cmd=`echo $cmd | sed -e 's/_/ /g'` #다시 _를 공백으로 치환해서 뿌려줌
        echo "$cnt.$cmd"
    done

 

    echo "\nx or q to exit."

    echo -n "\nSelect : "

 

    read appno

    echo ""

 

    case "$appno" in # x나 q를 누르면 종료
        x|q) exit ;;
        "") continue
    esac

 

    cnt=0

    for cmd in $cmds ; do #해당 번호의 명령을 실행
        cnt=`expr ${cnt} + 1`
        if [ ${cnt} = ${appno} ]
        then
            cmd=`echo $cmd | sed -e 's/_/ /g'`
            $cmd
            break
        fi
    done

 

done
#--- 끝.

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,