2016-11-10 5 views
0

Я ищу, чтобы создать скрипт на python, который инициирует сеанс SSH с сервером. Я знаю, что это должен быть простой процесс, я просто не знаю, с чего начать. Мой окончательный план - автоматизировать этот скрипт для запуска при запуске. я даже не уверен, что python - лучший способ пойти, я просто знаю, что он поставляется с предустановленной на raspbain для pi.Запуск сеанса SSH через скрипт python на малине pi

+2

Это будет однострочный шрифт в shellscript. – sobek

+1

Возможный дубликат [Как сделать ssh-соединение с python?] (Http://stackoverflow.com/questions/6188970/how-to-make-a-ssh-connection-with-python) –

+0

@SufiyanGhori Я не согласен, в то время как субъект может предположить это, OP не спрашивает конкретно о python. – sobek

ответ

2

Простой сценарий 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):

Вам нужны привилегии для любого следующего. Для того, чтобы получить корень, откройте терминал и запустите команду

sudo su 

и командной строки изменится на «#», указывая, что терминал сеанса имеет привилегии суперпользователя.

Альтернатива №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-соединения автоматически закрываются после периода бездействия).

+0

@downvoter Оставить комментарий ... – sobek

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/14254570) –

+1

@EliSadoff Достаточно честный, отредактированный. – sobek

Смежные вопросы