Embedded Linux commanderen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Demo
  • Registratie: Juni 2000
  • Laatst online: 30-09 11:31

Demo

Probleemschietende Tovenaar

Topicstarter
Omdat ik een stapel HP T5700 thinclients had liggen zonder functie en graag zoiets als Sonos in mijn huis zou hebben, maar arm, gierig en een ontzettende geek ben, ben ik vorig jaar gaan vogelen om zelf een netwerk audiospeler in elkaar te zetten. Het resultaat hiervan is gebaseerd op Music Player Daemon als server, die de muziek multicast naar clients op basis van Buildroot. De clients PXE-booten, starten socat (netcat op steroïden) op om op een multicast adres te luisteren, MPD op de server heeft een pipe output om eveneens via socat de muziek naar dat zelfde adres te spuwen. Werkt als een zonnetje, waarom moeilijk doen als het ook makkelijk kan, toch.
Het enige wat mijn systeem nog nodig heeft, is een manier om de clients uit te zetten/commando's geven vanaf de server. Telnet en SSH zijn hiervoor niet geschikt, omdat die een sessie opzetten naar een daemon. Ik wil het liefst de commando's achteloos het netwerk op schreeuwen en dan moeten die clients maar zelf besluiten of ze er naar luisteren of niet. Ik heb al geprobeerd om commando's via netcat naar /bin/sh te echo'en, maar dat leverde niet echt een bruikbaar mechanisme op.
Wie o wie heeft er een creatief idee?

NB: het client OS is in totaal 2,4 MB groot, dus constructies met Python of Perl gaan ook niet echt lukken..

Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done


Acties:
  • 0 Henk 'm!

  • Mijzelf
  • Registratie: September 2004
  • Niet online
Iets als
socat <address1> EXEC:/path/to/myscript.sh


myscript.sh
Bash:
1
2
3
4
5
6
7
8
#!/bin/bash

value=$(cat)

case $value in 


esac

Acties:
  • 0 Henk 'm!

  • Demo
  • Registratie: Juni 2000
  • Laatst online: 30-09 11:31

Demo

Probleemschietende Tovenaar

Topicstarter
Hmm, dat is best het proberen waard ja, dat ik daar niet aan gedacht heb.. Met zo'n case statement kan ik ook nog eens de uit te voeren commando's beperken.

Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done


Acties:
  • 0 Henk 'm!

  • himlims_
  • Registratie: Juni 2000
  • Niet online

himlims_

🐧 Linux HOoligan

zit beetje met zelfde, maar doe wel een ssh sessie om dat kreng uit te zetten. en wakeonlan om aan te zetten.

heb op de t5745 openelect gezet, menu soms wat (te) traag voor het beestje, maar werkt aardig.

⭐Game Profiles: 🕹️Steam - 🎮PSN - 🇪🇦 GoT_Hollandhards


Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05 20:45
Als het alleen lokaal is kun je rsh (remote shell) gebruiken. Die zal vast niet meer dan enige tientallen kb's zijn. Of natuurlijk de andere rsh (restricted shell).

[ Voor 17% gewijzigd door Sir Isaac op 13-04-2013 21:28 ]


Acties:
  • 0 Henk 'm!

  • Demo
  • Registratie: Juni 2000
  • Laatst online: 30-09 11:31

Demo

Probleemschietende Tovenaar

Topicstarter
Gisteravond zitten stoeien, maar niet heel veel succes gehad met een script. Ben er wel achter gekomen dat socat ook PTY's kan creëren als in/output, wellicht kan ik daar iets mee.
Daarnaast sluit socat aan de luisterende kant soms af als de afzender een EOF stuurt, ondanks de 'ignoreeof' optie. Maar dat zou op te lossen zijn door mijn script in de inittab te zetten met respawn.

Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done

Pagina: 1