Script Anfänger braucht Hilfe

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

cometosin

Benutzer
Registriert
08. Aug. 2010
Beiträge
19
Reaktionspunkte
0
Punkte
0
Hallo zusammen,

Ich arbeite bzw. spiele gerade ein wenig herum mit meiner DS damit
ich sie besser verstehe und meine Kentnisse erweitere.

Ich habe jetzt mit Hilfe eines anderen Threads rausgefunden,
wie ich an die aktuelle Downloadgeschwindigkeit des DLC komme,
Daraus habe ich mir dann auch abgeleitet wie ich an die aktuelle
Uploadgeschwindichkeit komme.

Ich verwende dazu folgenden Befehl:

Rich (BBCode):
#!/bin/sh
#Aktuellen UpSpeed abfragen

_Speed=`/usr/syno/pgsql/bin/psql -U admin -d download -c "select SUM(upload_rate) from download_queue"`
echo $_Speed
echo ""

okay das klappt auch soweit, leider sieht die Ausgabe dabei so aus:

sum ------- 26467 (1 row)

Meine Frage ist nun, wie stelle ich es an, dass ich eine Variable nur mit
dem Zahlenwert erhalte?

Grüße cometosin
 
Hi!

Ich denke das war wohl aus einem meiner Beiträge...
Hier ist der Codeteil den ich benutzt habe um die DL Speed zu erhalten:
Rich (BBCode):
_actDownSpeed=`/usr/syno/pgsql/bin/psql -U admin -d download -c "select SUM(current_rate) from download_queue" | tail  --lines=+3 | head --lines=1`

Normale abfrage liefert das:
Rich (BBCode):
 sum
-----
 597
(1 row)

dann kommt der Anhang hinzu:

tail --lines=+3 : "Nimm alles ab der 3. Zeile"

head --lines=1: " Nimm dann davon die 1. Zeile"

und zurück bleibt dann 597

Gruß
Ralf
 
Hey ja genau von deinem Code habe ich das abgeleitet.
Habe es auch mit tail und head probiert leider hat dass bei mir nicht geklappt:

Folgender Code:

Rich (BBCode):
#!/bin/sh
#Aktuelle DownSpeed abfragen

_Speed=`/usr/syno/pgsql/bin/psql -U admin -d download -c "select SUM(upload_rate) from download_queue" | tail --lines=+3 | head --lines=1`
echo $_Speed
echo ""


Diese Ausgabe:

head: invalid option -- -
BusyBox v1.1.0 (2010.04.13-16:53+0000) multi-call binary

Usage: head [OPTION]... [FILE]...

tail: invalid option -- -
BusyBox v1.1.0 (2010.04.13-16:53+0000) multi-call binary

Usage: tail [OPTION]... [FILE]...

Wie gesagt ich bin leider Anfänger und weiß nicht woran das liegt?

Kann irgendjemand damit vllt etwas anfangen?

Edit: wenn ich den Befehl in der Shell ausführe dann habe ich auch die 4 zeilen. Über das Script bekomme ich wie im ersten Post geschreiben alles in einer Zeile, vllt hilft das.
 
hm, hab deinen Code grad in meine Shell kopiert und hat auf anhieb funktioniert.
Rich (BBCode):
/usr/syno/pgsql/bin/psql -U admin -d download -c "select SUM(upload_rate) from download_queue" | tail --lines=+3 | head --lines=1
 
Brauch ich für tail und head noch zusätzliche pakete oder so?

EDIT: Auch direkt in der Shell bringt er mir die gleiche Fehlermeldung. :-(
 
also erst mal zur Beruhigung: Hab dein Skript getestet, es funktioniert soweit.

und ja, du brauchtst noch ein Paket, musst auch erst nachschauen.

Tail und Head sind im Paket
"coreutils - 8.4-1 - Bunch of heavyweight *nix core utilities"
mit drin.

Installier das über IPKG und dann sollt alles tun.

Gruß
Ralf
 
Hey cool, Danke es Funktioniert, aber nur als Script nicht direkt auf der Shell.
Werde mal noch neu starten und dann nochmal schaun ob es auch direkt
auf der Shell geht.

EDIT: Putty restart hat gereicht :-)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat