2016-11-10 4 views
0

Ich bin auf der Suche nach einem Skript in Python, die eine SSH-Sitzung mit einem Server initiiert. Ich weiß, dass es ein einfacher Prozess sein muss, ich bin mir nicht sicher, wo ich anfangen soll. Mein ultimativer Plan ist es, dieses Skript zu automatisieren, damit es beim Start ausgeführt wird. Ich bin nicht einmal sicher, Python ist der beste Weg zu gehen, ich weiß nur, es kommt auf Raspbain für den Pi vorinstalliert.Starten der SSH-Sitzung über Python-Skript auf Raspberry Pi

+2

Dies wäre ein One-Liner in Shellscript. – sobek

+1

Mögliche Duplikate von [Wie eine SSH-Verbindung mit Python zu machen?] (Http://StackOverflow.com/Questions/6188970/How-to-Make-Assh-connection-with-Python) –

+0

@SufiyanGhori Ich stimme nicht zu, Während das Subjekt es vorschlagen könnte, fragt das OP nicht spezifisch nach Python. – sobek

Antwort

2

Ein einfaches Bash-Skript wäre für die Aufgabe besser geeignet. Es ist möglich mit Python, aber es gibt keinen offensichtlichen Grund, es schwerer als nötig zu machen.

Von 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 

Von how do i run a script at start up (askubuntu):

Sie werden für jede der folgenden Root-Rechte benötigen. Root, offene ein Terminal zu erhalten und den Befehl ausführen

sudo su 

und die Eingabeaufforderung wird auf ‚#‘ ändern anzeigt, dass das Endgerät Sitzung Root-Rechte hat.

Alternative # 1. Fügen Sie ein Initskript hinzu.

Erstellen Sie ein neues Skript in /etc/init.d/myscript.

vi /etc/init.d/myscript 

(Natürlich ist es nicht über „myscript“. Genannt werden) In diesem Skript tun, was Sie tun wollen. Vielleicht führe einfach das Skript aus, das du erwähnt hast.

#!/bin/sh 
/path/to/my/script.sh 

Machen Sie es ausführbar.

chmod ugo+x /etc/init.d/myscript 

Konfigurieren Sie das Init-System, um dieses Skript beim Start auszuführen.

update-rc.d myscript defaults 

Alternative # 2. Add-Befehle

vi /etc/rc.local 

mit Inhalt wie die folgenden /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 

Alternative # 3. Einen Upstart-Job hinzufügen.

erstellen /etc/init/myjob.conf

vi /etc/init/myjob.conf

mit Inhalt wie folgt

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

Je nachdem, was Sie mit tun Wenn die SSH-Verbindung über die gesamte Betriebszeit des Geräts geöffnet bleiben muss, müssen Sie jedoch einige weitere Tricks anwenden (SSH-Verbindungen werden nach einem Zeitraum der Inaktivität automatisch geschlossen).

+0

@ downvoter Pls Hinterlasse einen Kommentar ... – sobek

+0

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/14254570) –

+1

@EliSadoff Fair genug, bearbeitet. – sobek