【问题标题】:Launching SSH session via python script on raspberry pi在树莓派上通过 python 脚本启动 SSH 会话
【发布时间】:2017-03-24 20:54:29
【问题描述】:

我希望在 python 中创建一个脚本来启动与服务器的 SSH 会话。我知道这必须是一个简单的过程,我只是不知道从哪里开始。我的最终计划是自动化这个脚本以在启动时运行。我什至不确定 python 是不是最好的方法,我只知道它是在 raspbain 上为 pi 预加载的。

【问题讨论】:

标签: python ssh raspberry-pi2


【解决方案1】:

一个简单的 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 权限才能执行以下任何操作。要获取root,请打开 终端并运行命令

sudo su

命令提示符将变为“#”,表示终端 session 有 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

配置初始化系统以在启动时运行此脚本。

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 工作。

创建 /etc/init/myjob.conf

vi /etc/init/myjob.conf

内容如下

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

根据您对 ssh 连接所做的操作,如果它需要在设备的整个运行时间内保持打开状态,那么您将需要使用更多技巧(ssh 连接会在一段时间不活动后自动关闭)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-08
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 2021-03-10
    • 2015-05-11
    • 2021-05-17
    • 2017-08-09
    相关资源
    最近更新 更多