继续远程 bash 脚本

Continue remote bash script

我是第一年的学徒,这是我的第一个post,所以请多多包涵。

首先:我们使用 Raspberry Pi 的拉伸分布。

每次推出更新时,我们都必须进行发布测试。通常,如果新版本有效,则必须通过 ssh 在 Pi 上手动和远程执行某些命令,并将结果与​​应有的结果进行比较。我目前正在使用 bash 脚本自动执行此过程,该脚本目前运行良好。

但是,在不同的时间点,我们必须创建某些标志文件来启动某些进程,然后重新启动 Pi,以便它检测标志文件并执行进程。问题是重启当然会结束我的脚本。

现在我知道您可以编写一个 cronjob 来执行脚本 @reboot 或在脚本中编写一个函数来检查状态然后执行脚本的 "after-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 上的实际脚本。

那么有没有办法 "tell" 我的本地脚本必须等待重新启动然后开始下一部分或其他什么?或者只是能够回到我的 "auto_start.sh",为此我可以写一个重启后的部分,并在 40 分钟左右的睡眠后给 Pi 第二个脚本。 (或者更好的是当 Pi 再次 运行ning 时进行检测,但这是我可以自己做的事情。)

在 Raspberry Pi 上执行脚本后,您可以 ping Pi 直到它响应:

#!/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