2016-11-10 124 views
0

我正在尋找在python中創建腳本來啓動與服務器的SSH會話。我知道它必須是一個簡單的過程,我不知道從哪裏開始。我的最終計劃是將這個腳本自動運行在啓動時運行。我甚至不知道python是最好的方法,我只是知道它是預裝在pi的raspbain上。通過Python腳本在樹莓派上啓動SSH會話

+2

這將是一個在shellcript中的單線程。 – sobek

+1

可能的重複[如何使用蟒蛇ssh連接?](http://stackoverflow.com/questions/6188970/how-to-make-a-ssh-connection-with-python) –

+0

@SufiyanGhori我不同意,雖然這個主題可能會提出這個問題,但OP沒有具體詢問Python。 – sobek

回答

2

一個簡單的bash腳本會更適合這個任務。 python是可能的,但沒有明顯的理由讓它比必要的更難。

write a shell script to ssh to a remote machine and execute commands

#!/bin/bash 
USERNAME=someUser 
HOSTS="host1 host2 host3" 
SCRIPT="pwd; ls" 
for HOSTNAME in ${HOSTS} ; do 
    ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}" 
done 

how do i run a script at start up (askubuntu)

您將需要以下任何root權限。爲了得到根,開 一個終端,運行命令

sudo su 

和命令提示符將改變,表明終端 會議具有root權限「#」。

選擇#1。添加啓動腳本。

/etc/init.d/myscript中創建一個新腳本。

vi /etc/init.d/myscript 

(顯然它並沒有被稱爲「的MyScript」。)在此腳本, 做任何你想做的事情。也許只是運行你提到的腳本。

#!/bin/sh 
/path/to/my/script.sh 

使其可執行。

chmod ugo+x /etc/init.d/myscript 

配置init系統在啓動時運行此腳本。

update-rc.d myscript defaults 

替代#2。將命令添加到/etc/rc.local

vi /etc/rc.local 

通過類似以下的內容。

# This script is executed at the end of each multiuser runlevel 
/path/to/my/script.sh || exit 1 # Added by me 
exit 0 

替代#3。添加一個Upstart工作。

通過類似以下的

description  "my job" 
start on startup 
task 
exec /path/to/my/script.sh 

取決於你做什麼內容創建/etc/init/myjob.conf

六/etc/init/myjob.conf

ssh連接,如果需要在設備的整個運行時間內保持打開狀態,則需要使用更多的技巧(ssh連接在一段時間不活動後會自動關閉)。

+0

@downvoter請發表評論... – sobek

+0

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/評論/低質量/職位/ 14254570) –

+1

@EliSadoff足夠公平,編輯。 – sobek