簡體   English   中英

繼續遠程bash腳本

[英]Continue remote bash script

第一年我只是一個學徒,這是我的第一篇文章,所以請多多包涵。

首先:我們使用具有拉伸分布的Raspberry Pi。

每次發布更新時,我們都必須進行發布測試。 通常情況下,如果新版本有效,則必須通過ssh在Pi上手動並遠程執行某些命令,並將結果與​​應該的結果進行比較。 我目前正在使用bash腳本來實現此過程的自動化,目前為止效果還不錯。

但是,在很多時候,我們必須創建某些標志文件來啟動某些進程,然后再重新啟動Pi,以便它檢測到標志文件並執行進程。 問題是重啟當然會結束我的腳本。

現在,我知道您可以編寫一個cronjob來執行一個腳本@reboot或在您的腳本中編寫一個檢查狀態的函數,然后執行腳本的“重啟動后”部分,但是這些解決方案都要求腳本在本地如果我正確理解它們,請在Pi上進行。 但是我必須從辦公室PC上通過ssh遠程運行scipts,並提供配置和切換參數等。

這是我在啟動腳本中運行的內容:

#!/bin/bash
CONFIG=/home/user/Schreibtisch/config.sh
source $CONFIG
echo "Release AutoTest V0.7 on $DEVICE_ID"
echo "Make sure an external WLAN chip is plugged in"
read -p "Press ENTER to start"
ssh root@$DEVICE_IP "bash -s" -- < /home/user/Schreibtisch/auto_test.sh "$PMD" "$BTDMD" "$AND TEN MORE PARAMETERS..."

exit 0

“ auto_test.sh”是在Pi上運行的實際腳本。

那么,有沒有一種方法可以“告訴”我的本地腳本以等待重新啟動,然后開始下一部分或其他操作? 或者只是能夠回到我的“ auto_start.sh”,為此我可以編寫一個重啟后的部分,並在睡眠40左右后給Pi提供第二個腳本。 (或者更好的是當樹莓派再次運行時進行檢測,但這是我可以自己進行的工作。)

在Raspberry Pi上執行腳本后,您可以對Pi進行ping操作,直到響應為止:

#!/bin/bash
CONFIG=/home/user/Schreibtisch/config.sh
source $CONFIG
echo "Release AutoTest V0.7 on $DEVICE_ID"
echo "Make sure an external WLAN chip is plugged in"
read -p "Press ENTER to start"
ssh root@$DEVICE_IP "bash -s" -- < /home/user/Schreibtisch/auto_test.sh "$PMD" "$BTDMD" "$AND TEN MORE PARAMETERS..."
while ! ping -c 1 -n -w 1 DEVICE_IP &> /dev/null; do :; done

# Execute whatever you want after the reboot

exit 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM