2017-06-30 14 views
1

私はgcloud VMインスタンス上にPythonスクリプトを持っています。私はこのシェルスクリプトを通して実行したい:VMに接続してコマンドを実行するシェルスクリプトを作成する方法は?

gcloud compute instances start instance-1 #start instance 
gcloud compute ssh [email protected] #ssh into it 
cd project_folder       #execute command once inside VM 
python my_script.py      #run python script 
sudo shutdown now       #exit instance 
gcloud compute instances stop instance-1 #stop instance 

最初の2つのコマンドは、意図したとおりに動作します。ただし、残りのコマンドはVMでは実行されません。 VMに接続した後にコマンドを実行するスクリプトを作成するにはどうすればよいですか?

答えて

2
gcloud compute instances start instance-1 #start instance 
gcloud compute ssh [email protected] #ssh into it 

この時点で、入力を待っているVMへのSSH接続があります。それはあなたが望むものではありません。

gcloud compute sshから--commandオプション、その...

は、ターゲット・インスタンス上でコマンドを実行して終了します。

gcloud compute ssh [email protected] \ 
    --command="cd project_folder && python my_script.py && sudo shutdown now" 
1

はまた、リモートサーバー上でコマンドの実行を自動化するSSHPassユーティリティを使用することができます。 https://linux.die.net/man/1/sshpass

関連する問題