레이블이 session인 게시물을 표시합니다. 모든 게시물 표시
레이블이 session인 게시물을 표시합니다. 모든 게시물 표시

2015년 3월 12일 목요일

ruby로 ssh 접속해서 원격으로 커맨드 실행시키기

서버에 명령어를 날릴때 보통 ssh를 이용하는데
ruby 스크립트를 이용해서 자동화 할 수 있다.

https://github.com/sosedoff/net-ssh-session

위의 gem을 사용하면 편리하다.
ruby에서 기본적으로 제공하는 net-ssh 의 경우 커맨드를 날릴때마다
세션 유지가 안되서 좀 불편하다.
예를 들어서 cd 로 디렉토리를 변경하고 ls를 해도 home 디렉토리의 파일이 리스팅 된다.

사용법은 readme가 워낙 잘 되어 있어서 간단하게만 설명하면
gem install net-ssh-session
위의 명령어로 gem을 설치하고
require 'net/ssh/session'

# Initialize a new connection
session = Net::SSH::Session.new(host, user, password)

# Connect to server
session.open

# Execute a remote command
result = session.run("ls")
이런 식으로 사용하면 된다.