2014-09-14 4 views
0

특정 조건이 충족 될 때 특정 subscript.sh를로드하기위한 "if else then"항목을 수행하는 원격 우분투 서버의 OSX에서 로컬 부트 스트랩 .sh 스크립트를 실행 중입니다.원격 위치에서 원격 셸에 하위 스크립트를 포함시키는 방법은 무엇입니까?

ssh [email protected] "bash -s" <~/projects/projectname/bootstrap.sh 

내가 (포함 /로드)의 기가 된 subscript.sh를 얻기에 문제가 있어요 :

나는 지방 스크립트와 것을 실행하고 있습니다.

+0

쉘 스크립팅을 처음 시작하는 사람이라면 배우는 프로젝트가 아닙니다. 나는'ssh' 명령 문자열에 그들을 포함시킴으로써 원격 컴퓨터의 로컬 컴퓨터에서 쉘 스크립트를 실행하는 것에 약간의 경험이 있지만, 당신이 요구하는 것이 가능하다는 것을 알지 못합니다. 모든 스크립트를 'over the wire'로 보낼 수 있습니다 (디버깅 문제와 취약성을위한 "기회"가 많음). 또는 로컬에서 원격으로 :/tmp 파일을 복사하여 모든 것을 실행할 수 있습니다. 내가 당신에게 추천하는 접근법. 행운을 빕니다. – shellter

+2

이럴 것 같지 않습니다 ** 더 쉽게 ** ** 간단히 말해서, 당신은 쉽게 이것을 할 수 없습니다. 'bash'는 rmeote 컴퓨터에서 돌아가고 있으며 여러분의 파일 시스템에 대한 지식이 없습니다. – jm666

+0

함수 내에서 명령을 다시 작성할 수 있다면 실제로 스크립트 파일을 복사 할 필요가 없습니다. 그런 다음 와이어를 통해 기능을 전송하고 원격으로 기능을 실행할 수 있습니다. – alvits

답변

1

수 없습니다. bootstrap.sh의 내용 만 원격 셸로 보냅니다. 원격 컴퓨터에서 subscript.sh의 출처를 찾으려고 시도했지만 존재하지 않습니다.

당신은 subscript.sh 복사 중 하나에 원격 시스템에 (또는 두 스크립트!)가 필요하거나 source 명령 대신에 bootstrap.shsubscript.sh의 내용을 삽입 할 수 있습니다.

+0

은 나에게 나쁜 소식처럼 들립니다. ( – frank

0

로컬 컴퓨터에서 서버로 'bootstrap.sh'를 rsync하는 것이 좋습니다. ssh 자격 증명으로이 작업을 수행 할 수 있어야합니다.

매우 유용한 유틸리티는 전송입니다. 그것은 $ 25이며, 마치 휴대용 하드 드라이브처럼 서버를 깨끗하게 마운트 할 수 있습니다 (전송은 동기화를 수행 할 수도 있음). 필요한 것은 ssh 자격 증명이며 매우 사용자 친화적 인 것입니다.

서버에 설치할 수 있으면 qsub를 설치합니다. (실제로 컴퓨터가 설치되어 있는지 확인하십시오.) 컴퓨터의 드라이브를 마운트하면 qsub로 스크립을 제출할 수 있습니다. (실제로는 Mac에서 작은 서버를 만들 것입니다). 이것은 내가 OSX 컴퓨터에서 리눅스 클러스터를 사용하기 위해 사용하는 것이다.

또는 osx에서 작은 서버를 만들고이를 Linux 서버에 마운트 할 수 있습니다.

관련 문제