2016-06-10 103 views
-1

我有我的本地機器上的一個腳本這有助於我連接到我的EC2。但是,它不運行指定的腳本文件。如何從本地機器上的腳本在aws-ec2上運行腳本?

awsconnect.sh:

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


    ./data.sh 

data.sh是我對AWS-EC2文件。

data.sh:

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文件正在運行的罰款,如果我從AWS-EC2命令行運行它。 但是,它不是從我的腳本文件運行。 問題是什麼?

+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" 

但是,如果你的腳本中的東西需要root權限,那麼你需要權限。

編輯:由於@ error2007s提到,我忘了在我的命令中指定身份文件。我編輯了命令,所以把它放在awsconnect.sh,它應該可以正常工作。

+0

是你的腳本可執行文件嗎? 'ls -l /path/to/your/script/data.sh'會告訴你。或者你願意成爲一個優秀的小男孩,並通過'......不執行'的含義給我們提供線索。你有錯誤信息嗎?透視通常不是預期的技能。 – Cwissy

+0

@AmanSrivastava等待,當你運行我發佈的命令後,它會將你登錄到計算機中?這不應該發生,我發佈的命令應該在機器上運行腳本,而不是登錄你。你能發佈更多信息嗎,你會收到錯誤信息嗎?發佈儘可能多的信息,即將您的整個命令/命令行輸出粘貼到您的帖子中。很多人都很樂意幫忙,但是當我們所知道的只是「它不工作」時,很難提供幫助:) – drewyupdrew

+0

@drewyupdrew我在我的實例上有一個腳本文件,名稱爲data.sh,它是可執行文件。上面給出了我的data.sh腳本。當我從該實例運行它並創建我的數據庫的轉儲時,它工作正常。 但是,當我從我的機器上運行你的命令它給了我下面的錯誤 - 「權限被拒絕(公鑰)」 這臺機器上的腳本不運行。 感謝您的幫助! :) –

相關問題