2019년 9월 3일 화요일

bash script + expect script 연결 스크립트

bash 와 expect는 문법도 다르고 방식도 다르다.

bash 는 스크립트 기반으로 명령을 실행한다면 expect의 경우에는 리모트 서버에 접속하여prompt를 통해서 명령을 실행 할 수 있다.
예를 들면 ssh를 통해서 명령어를 실행할 경우 

bash: ssh 계정@서버:명령어
expect: ssh 계정@서버 접속 후 prompt에서 명령어 실행 후 exit

이번에 bash 와 expect를 동시에 사용하기 위해서 스크립트를 만들었다.

#!/bin/bash

DEPLOY_BASE=/home/ansible/expect
DOMAIN="$1"
SERVICE="$2"

LIST="$DOMAIN"_"$SERVICE"_serverlist
USER=root
PASSWD=root

if [ -e "$LIST" ]; then
  for hostip in `cat $DEPLOY_BASE/$LIST`; do
  echo -e "\\n able to connect $hostip \\n"


# 여기서 부터 expect 를 실행한다. EOF는 end of file
expect << EOF
  spawn ssh -o StrictHostKeyChecking=no $USER@$hostip
  expect -re "password:"
  send "$PASSWD\r"

  expect -re "Last login:"
  send "exit \r"


# expect  종료.
EOF

  done
else
  echo -e "\\n # [ERROR] Can not found $LIST file \\n"
fi


단순 ssh 접속 테스트를 하기 위한 스크립트 이고 serverlist 파일에는 접속하려는 ip가 있어야 한다. 

이 스크립트 기반으로 응용하면 다른 명령어들도 실행이 가능하다.








2019년 9월 2일 월요일

이클립스 + git 연동 방법

java 개발할 때, 아마 이클립스를 가장 많이 사용 할 것이다. 
장소와 상관없이 작업해야 하는 일도 많고, 내가 만든 소스 버전관리도 해야한다.
이를 형상관리(Software Configuration Management라고 하는데, 나는 깃을 사용하고 있다.

이클립스와 깃을 연동하기 위해서 당연히 이클립스와 깃이 설치 되어야 한다. 
이클립스 설치는 워낙 쉽기 때문에 스킵하고 깃 연동 하는 부분을 해보도록 하겠다. 

- 이클립스 메인화면 우측 상단 Quick Access 에서 git 을 검색한다.



- 검색 리스트에서 git repository 를 클릭해서 하단에 git repository 가 보이는 지 확인한다. 
- 3가지 메뉴가 있다.
   1. Add an existing local git repository 로컬에 있는 레포지토리로 할 것인지 
   2.  Clone a git repository                       깃 레포지토리를 복지할 것인지
   3.  Create a new local git repository      새로운 깃 레포지토리를 만들 것인지

2번을 통해서 깃을 복제해보도록 한다. 



Clone a git repository 클릭한다.



깃 정보를 입력한다. 



Next 눌러서 다음으로 이동한다. 여기선 master만 있다. 



로컬 PC에 저장할 것인지를 확인 한다. 만약 project explorer에 추가 하려면 import all exising eclipse projects .... 를 체크한다. 



이 후 프로젝트에도 깃에서 받아온 소스를 확인 할 수 있다. 
모바일이든 PC든 빨간 x 표시는 참을 수가 없다. 



해당 에러를 빌드 패스(path) 문제다. PC 환경에 패스를 맞춰주면 된다. 

- 끝 -