루비와 원격으로 로컬 파일을 조작합니까?
-
18-09-2019 - |
문제
원격 서버에서 실행되는 간단한 레일 앱에서 랩탑에서 상징적 링크 생성을 자동화하고 싶습니다. 어디서나 노트북에서 커널 작업을 실행할 수 있어야합니다. 이것이 가능합니까?
해결책
원격에서 스크립트를 가져와 실행하십시오
서버는 노트북에서 실행될 대상 쉘 또는 루비 스크립트를 만들 수 있습니다. 노트북은 이제이 스크립트를 정기적으로 확인하고 실행해야합니다. 이것의 장점은 다음과 같습니다.
- 이것은 노트북뿐만 아니라 스크립트를 확인하는 다른 기계에도 적용됩니다.
- HTTP 이외의 다른 운송이 필요하지 않습니다
- 서버는 미리 클라이언트를 알 필요가 없습니다.
- 이는 클라이언트 측에서 변경없이 상징적 링크를 만드는 것 외에 다른 작업에 적용됩니다.
클라이언트 측은 다음과 같이 간단 할 수 있습니다.
wget -O - "url" | ruby -
또는
wget -O - "url" | sh -
서버에서 상징적 링크 목록을 생성하십시오
서버는 필요한 상징적 링크 목록을 만들 수 있습니다. 클라이언트 컴퓨터에서는이 목록을 정기적으로 구문 분석하고 기호 링크를 생성하는 프로그램이 필요합니다. 장점은 다음과 같습니다.
- 서버를 신뢰할 필요가 없습니다
- 서버는 할 수 없습니다
rm -rf /
사고로 - HTTP 이외의 다른 운송이 필요하지 않습니다
- 이것은 노트북뿐만 아니라 목록을 확인하는 다른 기계에도 적용됩니다.
클라이언트 측은 간단 할 수 있습니다
wget -O - "url" | ruby -r yaml -e "YAML.load(STDIN).each { |a, b| \`ln -s \"#{a}\" \"#{b}\" \` }"
다른 팁
퓨즈를 사용하여 파일 시스템을 장착하여 수행 할 수 있습니다. 제 생각에는 꽤 깔끔한 작은 것입니다.
편집 : Ruby 바인딩과의 퓨즈 인 Fusefs를 가리키도록 링크를 변경했습니다. Ruby를 사용하는 경우 필요한 것입니다.
루비 기반 인 꼭두각시를 사용할 수 있습니다.
만이라면 당신의 노트북과 다른 클라이언트가 없으면 서버 SSH를 랩톱으로 만들고 필요한 모든 것을 할 수 있습니다. 일반적으로 HTTP 서버가 클라이언트 시스템에서 무엇이든 할 수 없습니다.
제휴하지 않습니다 StackOverflow