본문 바로가기

Development/Servers

클라이언트 에디터에서 서버 파일 편집하기

예전에 SI 작업장에서 정책상 네이트온 메신저 포트가 막히면 SSH 를 통해 포트포워딩을 하여 접속했던 기억이 있다.


얼마전 A.J 를 통해 아톰 에디터에서 rmate 를 사용하는 방법을 배운 후, 서브라임텍스트에서도 그런 기능을 가진 툴이 분명 있을거라 생각하여 찾아보기 시작했다. 역시 있다.


SSH 포트포워딩 기능을 사용하는 {rmate, rsub, remote-edit} 를 통해 리모트 파일 편하게 수정하자


시나리오

  1. 클라이언트에서 사용할 {서브라임, 아톰} 에디터 준비: 각 플러그인 설치 {rsub, remote-atom} 등
  2. 클라이언트 에디터 {subl, atom} 실행
  3. 원격 서버에 로컬 포트 매핑하여 ssh 로그인
  4. 원격 서버에서 리모트 에디트 명령 실행 {rsub, rtm}
  5. 클라이언트의 에디터에 데이터가 오픈! 편집 저장 한다.
  6. 클라이언트 포트 포워딩 및 서버 세팅



클라이언트 작업


에디터 플러그인 설치


서브라임 텍스트의 경우 rsub 아톰의 경우 remote-atom 패키지를 설치한다.





SSH 작업


./ssh/config 에 미리 지정


접속할 서버 server-to-edit 로 지정한 your.server.com 일 경우


Host server-to-edit

  Hostname your.server.com

  RemoteForward 52698 127.0.0.1:52698


이렇게 정해두고 사용하는 사용자는 더 이상 설명이 필요없는 고수!


ssh server-to-edit


일반 접속


물론 그냥 다음과 같이 매번 타이핑하는 맛도 있다.


ssh -R 52698:localhost:52698 just-connect.server.com



서버 작업


rmate 스크립트 설치


루비(Ruby) 유저라면 그냥 sudo gem install rmate 로 설치가 된다고 한다.


깃헙에 준비된 rmate 파일을 다운로드한다.


curl https://raw.githubusercontent.com/aurora/rmate/master/rmate > rmate

chmod +x rmate


위와 같이 실행 플래그를 부여하고 ./rmate 편집할 파일 을 실행할 수 있다. 좀 더 편하게 사용하기 위해 권한 작업을 해 준다.


sudo mv rmate /usr/local/bin/`사용할 명령`

    

    or


sudo ln -s ~/rmate /usr/local/bin/


사용자를 찾아보기 힘든 textmate 의 흔적을 담은 rmate 대신 자신의 마음에 드는 쌈빡한 명령어로 변경하면 더 애착이 간다.


보통 sublime 유저는 subl, 아톰 유저는 atom 으로 네이밍 한다. (취향에 따라 앞에 r 자를 붙이는 편이다.)


어시스트 기능이 있는 쉘을 사용한다면 재 로그인 하거나 rehash 한다.


zsh 의 경우 rehash 가 제공된다.


원격 서버에서 리모트 에디트 명령 실행


클라이언트에 준비된 아톰이나 서브라임텍스트가 실행되어 있어야 한다. 서버에 저장된 rmate 복사본의 이름이 atom 또는 subl 일 경우


$> atom ./public/index.html


$> subl ./public/index.html


위와 같은 명령을 내리면 놀랍게도 클라이언트의 에디터에 해당 파일이 로딩된다. 이후 편집 및 저장은 로컬에서 작업하는 것과 동일하다.


삽질 결과 트리비아

  • 삽질의 결과 원격에 있는 rmate 파일은 클라이언트의 어떤 에디터와 사용해도 무관하다. 즉, 특정 클라이언트 에디터가 rmate 를 지원한다면 관계 없다.
  • 따라서 먼저 떠 있는 에디터가 파일을 열어준다. (아톰, 서브라임 둘다 떠 있는 경우)
  • zsh 에 rehash 명령이 있음! source 만 사용했었다. ㅜㅜ;
  • 지정된 포트는 당연히 변경 가능
  • 서브라임 만세! 서브라임 개발자 먹튀한 줄 알았지만 다시 업데이트 작업을 시작했다. 아직까지 아톰의 속도는 서브라임 따라가려면 멀었다. 졸라빠른 서브라임
  • 아톰 만세! 예쁘다. 끗.


참고 링크 : https://solarianprogrammer.com/2014/08/16/remote-text-editing-sublimetext-textmate/

'Development > Servers' 카테고리의 다른 글

최신 Mysql 캐릭터 셋과 컬레이션  (0) 2016.11.11
Nginx 에 코모도 Positive SSL 적용기  (2) 2014.06.30
Find, Grep 명령 예제  (0) 2014.03.19
프로세스 관리  (0) 2013.08.04
Nginx 프록시 모드 세팅 점검  (0) 2013.05.15