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월 3일 화요일
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 환경에 패스를 맞춰주면 된다.
- 끝 -
피드 구독하기:
글 (Atom)