하면 된다!!!

Linux 프로세스 관리 쉘

프로그래밍/기타

###################################


1. 특정 프로세스를 찾아서 죽이기


#!/bin/bash

ps -ef | grep -v grep | grep 프로세스명 | awk '{print $2}' | xargs --no-run-if-empty kill -9 $1



###################################


2. 특정 프로세스가 살아있는지 체크해서 죽어있으면 살리는 쉘


$ vi /var/test/run.sh


#!/bin/bash

PROCESS_CNT=`ps -ef | grep 프로세스명 | grep -v grep | awk '{print $2}' | wc -l`

if [ "$PROCESS_CNT" == 0 ];

then

    echo "[`/bin/date +\%Y\%m\%d_\%H\%M\%S`] Process : Dead!!"

    실행시킬_프로세스명

else

    echo "[`/bin/date +\%Y\%m\%d_\%H\%M\%S`] Process : Alive!!"

    exit 0

fi


위와 같은 쉘을 하나 만들어두고 crontab 에 1분에 한번씩 돌게 해주면 1분에 1회씩 프로세스가 살아있는지 체크하고 죽어있으면 실행 시키도록 할 수 있다.


$ crontab -e

* * * * * /var/test/run.sh >> /var/test/proc_mon.log


$ tail -f /var/test/proc_mon.log

1분에 1회씩 로그가 쌓이는 것을 확인할 수 있습니다.



Jenkins 포스트 쉘 스크립트 권한 관련 문제

프로그래밍/Java

리눅스 장비에 jenkins 를 설치하고나서 배포를 하다가 포스트 쉘 스크립트를 넣었다가 권한 문제로 에러를 여러차례 겪었는데...


jenkins는 jenkins 유저를 사용하고 있기 때문에 사용하려는 쉘에 접근하기 위해서는 권한이 필요했다.


이를 해결하기 위해서 jenkins 유저에 sudo 권한을 주고 포스트 쉘 쪽에는 sudo /path/to/abcd.sh 이렇게 처리를 해보는 것으로...


우선 sudoers에 유저와 권한을 넣어줘야 한다.


$ vi /etc/sudoers

# User_Alias ADMINS = jsmith, mikem << 요런 라인이 있는데 이 라인 아래에다가...


jenkins ALL=(ALL) NOPASSWD: ALL


이렇게 추가해준다.

NOPASSWD 라고 해주면 sudo 명령을 내리더라도 비번을 별도로 묻지 않게 됩니다.


물론 이렇게 셋팅을 하게 되면 sudo 커맨드를 이용해서 루트 권한으로 모든 커맨드를 실행할 수 있으니 문제가 있을 수 있다.

권한을 축소하려면 특정 경로나 파일을 지정해서 열어주는 것도 방법이다.


맨 뒤에 있는 ALL 을 대신해서 경로나 파일을 지정해주면 된다.


jenkins ALL=(ALL) NOPASSWD: /root/deployshell/


이런 식으로 해두게 되면 /root/deployshell/ 디렉토리 하단에 대한 권한을 지정해줄 수도 있다.


나이먹고 이런 삽질은 참 쉽지 않다. ㅠㅠ 어릴때 공부해뒀어야 하는데... 하는 생각뿐이다.


Eclipse 에서 FTP와 Shell 바로 사용 하는 방법

프로그래밍/기타

오늘 아침에 울 직원이 이클립스로 FTP를 바로 사용하는 방법이 있느냐는 말에 살짝 검색을 해봤다.

http://kyrandia.springnote.com/pages/610786

여기에 나온 내용대로~ 쭈욱 설치를 해봤다.

Add Site를 누르고 http://download.eclipse.org/releases/europa 를 입력한다.
그럼 아래와 같은 화면이 뜨고 두개의 패키지를 선택한다.
C and C++ Developement 와 Remote Access and Device Development 를 선택한다.
그리고 Install... 버튼을 가볍게 눌러준다.

사용자 삽입 이미지

쫘악 설치 과정은 대강 머... 알아서 하셔도 될듯하여 설명 생략~

설치가 긑나고 나서 이클립스를 재시작 하게 됩니다.
재시작 된 이클립스 메뉴에서 Window -> Open Perspetive -> Other -> Remote System Explorer 를 선택합니다.
사용자 삽입 이미지

왼편에 Local 하드 디스크를 바로 접근하여 파일을 볼 수도 있고 Remote System을 접근하여 볼 수도 있다.

사용자 삽입 이미지

리모트 사이트를 등록하기 위해서는 왼편 창에서 마우스 우클릭을 하게 되면
New->Connection 이라는 메뉴를 클릭한다.
아래 화면에서 원하는 형태의 Connection 을 선택하여 접속 정보를 입력하면~

사용자 삽입 이미지

요로~~케 윈도우 탐색기 모냥으로 쫘악 나오게 됩니다.
파일 카피 페이스트 삭제 등을 단축키로 바로 바로 실행하면 아주 잘 됩니다.
물론 파일 바로 열어서 수정도 되구요. 목적이 그거였으니깐~~

사용자 삽입 이미지

그리고 그 맨 아래에  Ssh Shells 라는 데를 우클릭해서 Launch Shell 을 선택하면 우측 하단에 View가 나타나는데 바로 SSH, Telnet 접속 화면이 나타난다.
화면의 내용을 블럭단위로 복사 등의 작업이 잘 안되어 불편하기는 하지만 쉽게 서버에 접속하여 커맨드를 날려볼 수가 있습니다.

사용자 삽입 이미지

그 외에도 더 다양한 기능이 있는데 제가 필요한 것만 골라서 딱 요기까지...만 설명하고 끝냅니다.