2016-02-07 64 views
-1

我想爲我的樹莓派製作關機腳本,通過ssh關閉另一個樹莓派。Linux - 使用SSH的關機腳本

如果腳本自身正在運行,但在關機例程中未執行ssh命令,則該腳本有效。

所以,我已經做了到現在爲止:

  1. 所做的腳本在/etc/init.d:
#!/bin/sh 
# the first thing is to test if the shutdown script is working 
echo "bla bla bla " | sudo tee -a /test.txt 
ssh [email protected] sudo shutdown -h now 
  • 製造它可執行
  • sudo chmod +x /etc/init.d/raspi.sh 
    
  • 製造一個符號鏈接到rc0.d
  • sudo ln -s /etc/init.d/raspi.sh /etc/rc0.d/S01raspi.sh 
    

    現在我知道,到目前爲止,該關機腳本工作關機路由之外,通過調用本身和關機符號鏈接我做了,因爲我看到的是還部分工作每次關機時,test.txt文件中的更改都會發生。

    任何人都可以幫助我如何解決我的問題?

    回答

    1

    你用單引號試過了嗎? 在谷歌的第一個環節都有它

    http://malcontentcomics.com/systemsboy/2006/07/send-remote-commands-via-ssh.html

    什麼sudo的,你怎麼解決輸入密碼?

    https://superuser.com/questions/117870/ssh-execute-sudo-command

    請檢查這個或那個有有用的信息在網絡上的其他鏈接。

    我會發送所有這些在評論中,但我不能因爲聲譽。

    +0

    我解決了這個問題,在關機時用鑰匙和須藤在SSH輸入密碼,沒有必要的密碼。我在第一個鏈接建議中使用了單引號的方法,並在第二個鏈接中建議將-t添加到ssh命令中。我也嘗試了使用「update-rc.d raspi.sh stop 01 0」的方法,該方法是在互聯網上的第二次搜索中找到的,但輸出的結果與問題中描述的相同。 – Fabian

    0

    我現在已經擁有了自己運行的腳本。我真的不知道爲什麼它現在可以工作,但我把它寫下來,也許別人可以清楚它。

    我不認爲在我的系統的前兩個變化有所作爲,但我也寫下來。與此同時,因爲我沒有管理腳本來工作,我做了一個按鈕來手動關閉系統。另外我還創建了一個腳本,它支持mysql數據庫(這是在Raspberry Pi上,我想用腳本關閉),並將備份複製到樹莓派,它應該通過關機自動切換另一個樹莓派,腳本。這發生在scp上,密碼也是生成的關鍵字。

    我也改變了我的腳本以獲取腳本中的日誌消息。

    #!/bin/sh 
    ssh -t -t [email protected] 'sudo shutdown -h now' >> /home/osmc/shutdown.log 2>&1 
    

    要讓它進入我使用的關機例行:

    sudo update-rc.d raspi-b stop 01 0 
    

    我希望有人能說我爲什麼我的代碼現在工作的第一天,但​​不能在接下來的幾天,直到如今。

    +0

    在第一天它的工作,但奇怪的是,直到現在它沒有奏效。 – Fabian

    0

    我構建了一個通過ssh掛起或關閉遠程主機的命令。你可能會覺得這很有用。這可以用於在沒有交互式會話的情況下掛起/關閉遠程計算機,但不會使終端忙碌。您將需要授權遠程用戶使用sudo而不使用密碼來關閉/掛起。另外,本地和遠程機器應該設置爲SSH而無需交互式登錄。由於暫停的機器不會斷開終端,該腳本對於暫停機器更有用。

    [email protected]:~$ ssh [email protected]_host "screen -d -m sudo pm-suspend" 
    

    來源:कार्यशाला (Kāryaśālā)