Traag opstarten Python script op remote raspberry

Vanuit een domoticz script start ik een python3 script op een andere rapsberry voor het aansturen van een motor.

code:

#/bin/bash
export SSHPASS=password
sshpass -e ssh -o StrictHostKeyChecking=no pi@192.168.1.224 'python3 /home/pi/motor/programma.py'

Dit loopt via SSH en is te traag (2-3 seconden). SSH inlog is al 'geoptimaliseerd'. Is er een andere manier via een ander type verbinding om een snelle opstart van het script te krijgen.

dns lookups? klinkt als een dns lookup die wacht op een timeout.

Op 4 februari 2022 16:50:58 schreef DJSmiley:
dns lookups? klinkt als een dns lookup die wacht op een timeout.

Nee heb ik uit gezet.

Je zou kunnen proberen om RSA authenticatie te gebruiken. Dan hoef je niet meer in te loggen.

Hier staat het uitgelegd

reading can seriously damage your ignorance

Op 4 februari 2022 17:50:11 schreef fronsky:
[...]

Nee heb ik uit gezet.

Weet je dat zeker?

(In "sshd_config" dus UseDNS=No instellen, igv OpenSSH)

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
EricP

mét CE

Zou het echt zo dom in elkaar zitten dat wanneer er een 'hard' IP address staat, er toch DNS geneuzel plaats vindt?

big_fat_mama

Zie Paulinha_B

Zo'n gevallen heb ik zeker al geweten, ofschoon nog niet op Raspbian.
Bemerk ook dat "fixed ip" er niet veel mee te maken heeft: de vertraging treedt op bij het aanloggen/authenticeren. Zie ook de opmerking hierboven, van @henri62: die heeft alle kans om raak te zijn.

Overigens een mogelijk alternatief: als ssh om een of andere reden te traag is, overweeg dan rsh. Dat is natuurlijk veel minder beveiligd, maar hopelijk draait de domotica sowieso op een geïsoleerd netwerk of -segment, dan speelt die beveiliging al veel minder mee, of zelfs helemaal niet.

[Bericht gewijzigd door big_fat_mama op zaterdag 5 februari 2022 09:19:39 (35%)

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

Om dit soort dingen te debuggen kan je "strace" gebruiken.

Log in op de pi, zoek het PID van de SSHD op (meestal het laagste nummer als het er meer zijn).

code:

ps auxww | grep /usr/sbin/sshd

Gebruik dan strace op de sshd, en stuur de uitvoer naar een file.

code:

strace -ttt -s 300 -fp <pid-van-sshd> -o sshd.str

Vervolgens kan je timestamps vergelijken en kijken waar de tijd in gaat zitten.

Als er een reverse-dns-lookup op de server moet gebeuren kan dat tijd kosten. Mogelijk ook het opstarten van python.

Ik moet nu software maken die snel reageert. Ik zorg dat alles al draait en opgestart is, en ik maak een netwerk-programma die aan z'n broertje: "Hey ga eens wat doen" stuurt.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Het kan zijn dat de authentication/security logging een reverse lookup doet van de inkomende ssh.
Zorg dus dat in beide /etc/hosts files staat:

192.168.2.254 server
192.168.2.24 client

ssh -v gebruiken geeft misschien ook wat helderheid.

big_fat_mama

Zie Paulinha_B

Goed idee, @rew, alleen zou het wel eens kunnen dat de sshd voor iedere nieuwe connectie een nieuw sub-proces opstart, en dat het daar is dat de interessante dingen gebeuren.

Wel slim om te maken dat alles permanent draait, zodat er niets meer moet worden opgestart als er actie nodig is.

@K7Jz hierboven: dat is een workaround, en geeneens een heel propere. Truuken van de foor :) !

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

Op 5 februari 2022 15:28:25 schreef big_fat_mama:
Goede idee, @rew, alleen zou het wel eens kunnen dat de sshd voor iedere nieuwe connectie een nieuw sub-proces opstart, en dat het daar is dat de interessante dingen gebeuren.

Wel slim om te maken dat alles permanent draait, zodat er niets meer moet worden opgestart als er actie nodig is.

@K7Jz hierboven: dat is een workaround, en geeneens een heel propere. Truuken van de foor :) !

Geen idee waarom je dat een workaround vindt die ook nog eens niet proper is.
Ik weet niet wat ‘truuken van de foor’ zijn. rsh lijkt me minder proper!

PE9SMS

Special Member

Laatst heb ik een oude RPi onder het stof vandaan gehaald en een beetje aan het spelen met Home Assistant en MQTT en een ESP8266 met sensor die daar tegen praat. Ik zou denken dat MQTT ook voor jouw toepassing kan werken? Dus dat "programma.py" een MQTT topic staat te monitoren tot daar een seintje langs komt om iets te gaan doen.

This signature is intentionally left blank.

Op 5 februari 2022 15:27:53 schreef K7Jz:
Het kan zijn dat de authentication/security logging een reverse lookup doet van de inkomende ssh.

Ja dat gebeurd (aan de server kant). En met 'UseDNS=no' zet je dat uit.
Heb ik vaak genoeg uitgezet omdat het wel een 10-20 sec vertraging kan opleveren.

Wat ook kan is dat er een massa authenticatie methoden geprobeerd worden voordat die de 'juiste' vind.

Even de client starten met: ssh -v -v -v ....
Dan zie je wat er allemaal gebeurd.

[Bericht gewijzigd door henri62 op woensdag 9 februari 2022 21:47:55 (23%)

1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.