블로그 이미지
JEEN

서울에 사는 꽃청년의 IT찌질모험기

Rss feed Tistory
IT/Perl 2008.10.22 21:16

[ Perl ] Expect 를 이용해서 자동화하기


  경황이 없어서 급하게 짜놓은 예전 코드들을 보면... 뭐 Perl 코드에 system 호출해서 셸 스크립트 실행하는데... 그 셸 스크립트 안에는 또 Perl 스크립트를 실행하게 해놓은 코드였습니다.

  Perl 로 된 Web App 에서 system("./script/blah.sh) 같은 걸 해놓고
  blah.sh 안에는.. perl ./script/blah.pl 같은 작업이 있는 것이죠.

  그리고 걔중에는 소스코드 안에 계정 정보도 포함되어 있어서... 상당히 불쾌감을 안겨주었습니다.

  그런 중에 이번에야말로 Expect 를 써보자 라는 생각에 Expect 를 썼습니다. ;ㅁ;

  뭐 명령은 근데 간단합니다. 계정 정보는 사전에 암호화 시킨 것을 YAML 에 넣고, 그것을 복호화해서 쓰도록 했습니다;;
  (뭐 맘먹으면 개나소나 알 수 있을 테지만... ;ㅁ;)

  이게 SSH 로 리모트에 접속해서.. 어떤 처리를 슥샥 해서... 그 정보를 로컬로 가져와서 또 어떤 처리를 돌리고, 그것을 또 가져와서 슥샥슥샥...

  각각의 스크립트는 방대하기 그지없어서... 통합할 생각도 못하고 저렇게 내버려뒀습니다.
   
  저 역시 아주 간단한 사용법으로 슥샥해버려서...:-)

  코드는 yundream 님의 블로그에서 참조했습니다. 그래서 소스는 이쪽을 참조하시면 되겠습니다.

  Expect 는 너무 편리하더군요.

  이제는 Web App 에서 직접 system 호출하는 것보다... TheSchwartz 같은 것을 도입하려고 하는데...
  아직 검증이 안되어서... 다음을 기약해야 되겠군요.


  요즘은 개인 리포지트리에 일련의 샘플코드를 모아두고 있습니다. 가끔 한번 써봤던 모듈 사용법도 까먹을 때가 있어서 말이죠. (특히 도큐멘트가 그리 충실하지 않은 모듈들... App::CLI 같은..) 근데 제 소스도 아닌 것도 모으고 있고...;; 일단 펄 관련 소스라면 무조건 모으고 보자는 맘으로 집어넣고 있습니다.


  아무튼 요즘은 공부가 부족하다는 것을 새삼 느끼는 나날들입니다. 슬슬 개인적인 프로젝트를 하나 만들어서 나름 생각하고 있는 것들을 써먹어야 되겠다는 생각도 하고 있습니다.

  생각만해서는 안될텐데 말이죠.. ;ㅁ; SSH!

신고
TOTAL 467,015 TODAY 68

티스토리 툴바