2016-06-10 5 views
-1

내 로컬 컴퓨터에 내 ec2에 연결할 수있는 스크립트가 있습니다. 그러나 지정된 스크립트 파일을 실행하지 않습니다.로컬 컴퓨터의 스크립트에서 aws-ec2의 스크립트를 실행하는 방법은 무엇입니까?

awsconnect.sh는 :

ssh -i ".pemfile" [email protected]"ec2-instance" 


    ./data.sh 

data.shAWS-EC2 내 파일입니다.

data.sh : 내가 AWS-EC2 명령 줄에서 실행하는 경우

mkdir -p dumps/$(date +"%Y%m%d"); 
    mysqldump -h localhost -port=3306 -u root -proot abc | gzip > dumps/$(date +"%Y%m%d")/abc.sql.gz; 
    logout 

data.sh 파일이 잘 실행되고 있습니다. 그러나 스크립트 파일에서 실행되지 않습니다. 무엇이 문제입니까?

+0

그래서이 파일 "awsconnect.sh"를 사용하여 인스턴스에 연결하고 스크립트에서 "data.sh"파일을 어떻게 실행합니까? – error2007s

+1

스크립트는'ssh' 명령이 끝나고 종료 될 때까지 기다리고있다가 다음 명령을 로컬에서 실행합니다. 그것은 분명히 당신이 원하는 것이 아닙니다. 원하는 원격 명령을 * ssh 명령에 전달해야합니다. 솔루션에 대한 drewyupdrew의 대답을 참조하십시오. –

답변

2

기계에 ssh를 제대로 사용할 수 있습니까? 그렇다면 스크립트의 소유권과 사용 권한이 올바른지 확인해야합니다. 그러면 다음을 수행 할 수 있습니다.

ssh -i key.pem [email protected] "bash /path/to/your/script/data.sh" 

그러나 스크립트의 내용에 루트 액세스가 필요한 경우 사용 권한이 필요합니다.

편집 : @ error2007s 언급했듯이, 내 명령에 ID 파일을 지정하는 것을 잊었습니다. 명령을 편집 했으므로 이것을 awsconnect.sh에 넣으십시오. 그러면 정상적으로 작동합니다.

+0

은 스크립트 실행 파일입니까? 'ls -l /path/to/your/script/data.sh '가 알려줄 것입니다. 아니면 좋은 어린 아이가되어 줄래 ... '실행하지 못한다'는 말을 듣고 단서를 주시겠습니까? 오류 메시지가 나타 납니까? 투시는 일반적으로 예상되는 기술이 아닙니다. – Cwissy

+0

@AmanSrivastava, 내가 게시 한 명령을 실행 한 후 기다렸다가 컴퓨터에 로그인 했습니까? 그렇게해서는 안된다. 내가 게시 한 명령은 로그인하지 않고 컴퓨터에서 스크립트를 실행해야한다. 더 많은 정보를 게시 할 수 있는가, 오류 메시지가 나타날 수 있는가? 가능한 한 많은 정보를 게시하십시오. 즉, 전체 명령/명령 행 출력을 게시물에 붙여 넣으십시오. 여기에 많은 사람들이 도움을 주려고하지만, 우리가 아는 모든 것이 "작동하지 않는다"는 것을 알기가 어렵습니다. :) – drewyupdrew

+0

@drewyupdrew 실행할 수있는 data.sh라는 이름의 스크립트 파일이 있습니다. 내 data.sh에 대한 스크립트는 위에 주어진 것입니다. 그것은 그 인스턴스에서 그것을 실행하고 내 데이터베이스의 덤프를 만들 때 잘 작동합니다. 하지만 내 컴퓨터에서 명령을 실행했을 때 다음 오류가 발생했습니다. "Permission denied (publickey)" 해당 컴퓨터의 스크립트가 실행되지 않습니다. 도움 주셔서 감사합니다. :) –

관련 문제