【问题标题】:writing shell ssh script for uploading compiled sketch on multiple arduino yun in network编写用于在网络中的多个 arduino yun 上上传编译草图的 shell ssh 脚本
【发布时间】:2021-03-23 19:46:19
【问题描述】:

我和几个 arduino yuns 一起工作,想写一个脚本来上传其中多个的草图。假设我有一个编译的 arduino 程序:sketch.hex。 现在我想通过局域网上传这个文件。对于单个设备,它的工作原理是这样的。

将草图复制到设备上。 (需要密码)

scp sketch.hex root@yun1.local:/tmp/sketch.hex

打开与设备的 ssh 会话。 (需要密码)

ssh root@yun1.local

然后使用以下 2 个命令将程序加载到 Atmega 上。

merge-sketch-with-bootloader.lua /tmp/sketch.hex
run-avrdude /tmp/sketch.hex

现在我的问题是,如何为多个 arduino(yun1、yun2、...、yunN)执行此操作,而无需在每个设备中实际输入 ssh-ing 以运行底部的 2 个命令。

希望这个问题不会太令人困惑,并提前非常感谢。

更新:可以自己解决。这是代码,以防有人需要。

#!/bin/sh

#  globalUpload.sh
#  
#
#  Created by maggu on 21/02/16.
#
clear
FILENAME="valve_adjusting.hex"
SSHPASS="doghunter"
SSHCOMMAND="ssh -p 22 -T -o StrictHostKeyChecking=no -o BatchMode=no"
PREFIX="root@linino"
PREFIXO="linino"
SUFFIX=".local"
YUNS=8
for i in `seq 1 $YUNS`
do
SSHACCOUNT=$PREFIX$i$SUFFIX
ssh-keygen -R $PREFIXO$i$SUFFIX
sshpass -p "doghunter" scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null sketch.hex $SSHACCOUNT:/tmp/sketch.hex
sshpass -p $SSHPASS $SSHCOMMAND $SSHACCOUNT << EOF_run_commands
merge-sketch-with-bootloader.lua /tmp/sketch.hex
run-avrdude /tmp/sketch.hex
EOF_run_commands
done

【问题讨论】:

    标签: shell ssh arduino arduino-yun


    【解决方案1】:
    #!/bin/sh
    
    #  globalUpload.sh
    #  
    #
    #  Created by maggu on 21/02/16.
    #
    clear
    FILENAME="valve_adjusting.hex"
    SSHPASS="doghunter"
    SSHCOMMAND="ssh -p 22 -T -o StrictHostKeyChecking=no -o BatchMode=no"
    PREFIX="root@linino"
    PREFIXO="linino"
    SUFFIX=".local"
    YUNS=8
    for i in `seq 1 $YUNS`
    do
    SSHACCOUNT=$PREFIX$i$SUFFIX
    ssh-keygen -R $PREFIXO$i$SUFFIX
    sshpass -p "doghunter" scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null sketch.hex $SSHACCOUNT:/tmp/sketch.hex
    sshpass -p $SSHPASS $SSHCOMMAND $SSHACCOUNT << EOF_run_commands
    merge-sketch-with-bootloader.lua /tmp/sketch.hex
    run-avrdude /tmp/sketch.hex
    EOF_run_commands
    done
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 2012-06-24
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多