Hilfe beim dem script hier

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
luiluiboy014
Beiträge: 15
Registriert: 27.07.2019 15:12:29

Hilfe beim dem script hier

Beitrag von luiluiboy014 » 27.07.2019 15:15:27

kann mir einer helfen bei dem script hier der geht nicht richtig

Code: Alles auswählen

Info_RS(){

	RAMSIZE="`free -m | tail -n 2 | head -1 | awk '{print $2}'`"
	RAMUSED="`free -m | tail -n 2 | head -1 | awk '{print $3}'`"
	RAMAVAI="`free -m | tail -n 2 | head -1 | awk '{print $4}'`"
	RAMCACH="`free -m | tail -n 2 | head -1 | awk '{print $7}'`"

	SWPSIZE="`free -m | tail -n 1 | head -2 | awk '{print $2}'`"
	SWPUSED="`free -m | tail -n 1 | head -2 | awk '{print $3}'`"
	SWPAVAI="`free -m | tail -n 1 | head -2 | awk '{print $4}'`"

	CPU=$( echo "$CPUINFOS" | awk '{print $3}' )

	UPT0="`uptime`"
	UPT1=$( echo "$UPT0" | awk -F"up " '{print $2}' | awk -F"load" '{print $1}' )
	UPT2=$( echo "$UPT1" | sed -e 's/,//g' )
	UPT3=$( echo "$UPT2" | awk -F"  " '{print $1}' )
	UPT4=$( echo "$UPT3" | cut -d" " -f2 )

	if [ "$UPT4" = "min" ]; then
	    UPT5=$( echo "$UPT3" | cut -d" " -f1 )
				
	    UPTIME="0,0,$UPT5,0"
	fi
				
	if [[ "$UPT4" = "day" || "$UPT4" = "days" ]]; then
				
	    UPT5=$( echo "$UPT3" | cut -d" " -f1 )
	    UPT6=$( echo "$UPT2" | cut -d" " -f4 )
	    UPT7=$( echo "$UPT6" | cut -d":" -f1 )
	    UPT8=$( echo "$UPT6" | cut -d":" -f2 )

	    UPTIME="$UPT5,$UPT7,$UPT8,0"

	fi
				
	if [[ "$UPT4" != "min" && "$UPT4" != "day" && "$UPT4" != "days" ]] ; then
	    UPT5=$( echo "$UPT3" | cut -d":" -f1 )
	    UPT6=$( echo "$UPT3" | cut -d":" -f2 )

	    UPTIME="0,$UPT5,$UPT6,0"
	fi

	return_info=" $RAMSIZE|$RAMUSED|$RAMAVAI|$RAMCACH||$SWPSIZE|$SWPUSED|$SWPAVAI||CPU||$UPTIME"

}
hoffe jemand kann mir da helfen

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Hilfe beim dem script hier

Beitrag von cronoik » 27.07.2019 15:27:13

Willkommen im Forum, es hilft dir sicherlich wenn du uns mitteilst welchen Verhalten du konkret erwartest und welchen Wert du fuer $CPUINFOS gesetzt hast.
Hilf mit unser Wiki zu verbessern!

luiluiboy014
Beiträge: 15
Registriert: 27.07.2019 15:12:29

Re: Hilfe beim dem script hier

Beitrag von luiluiboy014 » 27.07.2019 15:34:18

also es sieht grade so aus bei der abfrage
bei der lauf zeit wird nicht richtig angezeigt cpu garnicht die hdd fehlt weiß nicht wie ich das abfragen kann hoffe ihr könnt mir helfen

Code: Alles auswählen


Array
(
    [0] => 0
    [1] => 0
    [2] => 31
    [3] => 0
)

Array
(
    [0] => CPU
)

Array
(
    [0] => 2044
    [1] => 0
    [2] => 2044
)

Array
(
    [0] => 1995
    [1] => 86
    [2] => 1777
    [3] => 1765
)

Array
(
    [0] => 1995

hier die abfrage für die info

Code: Alles auswählen

if [ "$1" = "info" ]; then
. scripts/functions/info

    Info_RS "$1" "$2" "$3" "$4"
    Return "$return_info"
	
fi

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Hilfe beim dem script hier

Beitrag von cronoik » 27.07.2019 15:41:04

luiluiboy014 hat geschrieben: ↑ zum Beitrag ↑
27.07.2019 15:34:18
bei der lauf zeit wird nicht richtig angezeigt cpu garnicht die hdd fehlt weiß nicht wie ich das abfragen kann hoffe ihr könnt mir helfen
Was ist denn die Ausgabe von:

Code: Alles auswählen

echo "$CPUINFOS"
?
In der Zeile:

Code: Alles auswählen

return_info=" $RAMSIZE|$RAMUSED|$RAMAVAI|$RAMCACH||$SWPSIZE|$SWPUSED|$SWPAVAI||CPU||$UPTIME"
fehlt ein $ vor CPU.
Des Weiteren was sind die Aufrufparameter $2, $3, $4?
Was willst du denn von der hdd anzeigen (bitte konkrete Angabe)?
Hilf mit unser Wiki zu verbessern!

luiluiboy014
Beiträge: 15
Registriert: 27.07.2019 15:12:29

Re: Hilfe beim dem script hier

Beitrag von luiluiboy014 » 27.07.2019 15:57:52

die cpuinfo muss noch eingerichtet werden wie die hdd die soll anzeigen wie viel speicher sie im gebrucht hat und wie viel noch frei ist und $2 $3 $4 glaueb ich garnix kann egal was weg machen passiert nix weil das habe ich nicht geschriben ich versuch es so weit es geht zu beheben und dafür brauche ich hilfe

luiluiboy014
Beiträge: 15
Registriert: 27.07.2019 15:12:29

Re: Hilfe beim dem script hier

Beitrag von luiluiboy014 » 27.07.2019 16:21:40

kennt sich einer damit aus

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Hilfe beim dem script hier

Beitrag von cronoik » 28.07.2019 00:51:04

Vorschlag mit Ueberpruefung des genutzten und freien Speichers der Partition die das root Verzeichnis enthaelt (falls du etwas anderes ueberwachen moechtest, ersetze einfach / durch die Bezeichnung der Partition) und CPU Auslastung der letzten Minute:

Code: Alles auswählen

#!/bin/bash

Info_RS(){

        #ram
        RAMSIZE="`free -m | tail -n 2 | head -1 | awk '{print $2}'`"
        RAMUSED="`free -m | tail -n 2 | head -1 | awk '{print $3}'`"
        RAMAVAI="`free -m | tail -n 2 | head -1 | awk '{print $4}'`"
        RAMCACH="`free -m | tail -n 2 | head -1 | awk '{print $7}'`"

        #swap
        SWPSIZE="`free -m | tail -n 1 | head -2 | awk '{print $2}'`"
        SWPUSED="`free -m | tail -n 1 | head -2 | awk '{print $3}'`"
        SWPAVAI="`free -m | tail -n 1 | head -2 | awk '{print $4}'`"

        #disk usage
        DISKUSAGE="`df -h / | tail -n 1 | awk '{print $3}'`"
        DISKAVAIL="`df -h / | tail -n 1 | awk '{print $4}'`"

        #CPUUSAGE
        CPUUSAGEONEMIN="`uptime | awk '{ gsub(",","/",$8); print $8}'`""`grep -c ^processor /proc/cpuinfo`"

        #uptime
        UPT0="`uptime`"
        UPT1=$( echo "$UPT0" | awk -F"up " '{print $2}' | awk -F"load" '{print $1}' )
        UPT2=$( echo "$UPT1" | sed -e 's/,//g' )
        UPT3=$( echo "$UPT2" | awk -F"  " '{print $1}' )
        UPT4=$( echo "$UPT3" | cut -d" " -f2 )

        if [ "$UPT4" = "min" ]; then
            UPT5=$( echo "$UPT3" | cut -d" " -f1 )

            UPTIME="0,0,$UPT5,0"
        fi

        if [[ "$UPT4" = "day" || "$UPT4" = "days" ]]; then

            UPT5=$( echo "$UPT3" | cut -d" " -f1 )
            UPT6=$( echo "$UPT2" | cut -d" " -f4 )
            UPT7=$( echo "$UPT6" | cut -d":" -f1 )
            UPT8=$( echo "$UPT6" | cut -d":" -f2 )

            UPTIME="$UPT5,$UPT7,$UPT8,0"

        fi

        if [[ "$UPT4" != "min" && "$UPT4" != "day" && "$UPT4" != "days" ]] ; then
            UPT5=$( echo "$UPT3" | cut -d":" -f1 )
            UPT6=$( echo "$UPT3" | cut -d":" -f2 )

            UPTIME="0,$UPT5,$UPT6,0"
        fi

        return_info=" $RAMSIZE|$RAMUSED|$RAMAVAI|$RAMCACH||$SWPSIZE|$SWPUSED|$SWPAVAI||$DISKUSAGE|$DISKAVAIL||$CPUUSAGEONEMIN||$UPTIME"
}
Hilf mit unser Wiki zu verbessern!

luiluiboy014
Beiträge: 15
Registriert: 27.07.2019 15:12:29

Re: Hilfe beim dem script hier

Beitrag von luiluiboy014 » 28.07.2019 11:15:31

ist die cpu auslastung in % angegeben

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Hilfe beim dem script hier

Beitrag von cronoik » 28.07.2019 15:44:45

Nein als Bruch bezogen auf alle Kerne. Also 2/8 heisst, dass 2 von 8 Kernen ausgelastet sind (wobei die tatsaechlich Arbeit ueber mehrere Kerne verteilt sein kann).
Hilf mit unser Wiki zu verbessern!

luiluiboy014
Beiträge: 15
Registriert: 27.07.2019 15:12:29

Re: Hilfe beim dem script hier

Beitrag von luiluiboy014 » 28.07.2019 16:10:15

weil bei der cpu bekomme ich das hier als abfrage
Array
(
[0] => load2
)

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Hilfe beim dem script hier

Beitrag von cronoik » 28.07.2019 16:11:35

Was ist denn die Ausgabe von

Code: Alles auswählen

uptime
?
Hilf mit unser Wiki zu verbessern!

luiluiboy014
Beiträge: 15
Registriert: 27.07.2019 15:12:29

Re: Hilfe beim dem script hier

Beitrag von luiluiboy014 » 28.07.2019 16:13:21

16:13:07 up 2 days, 2:19, 1 user, load average: 0,12, 0,11, 0,04

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Hilfe beim dem script hier

Beitrag von cronoik » 28.07.2019 16:33:50

Ah entschuldige, mein Fehler. Nimm stattdessen diese Zeile:

Code: Alles auswählen

CPUUSAGEONEMIN="`uptime | awk '{a=substr($(NF-2), 1, length($(NF-2))-1); print a"of" }'`""`grep -c ^processor /proc/cpuinfo`"
Hilf mit unser Wiki zu verbessern!

luiluiboy014
Beiträge: 15
Registriert: 27.07.2019 15:12:29

Re: Hilfe beim dem script hier

Beitrag von luiluiboy014 » 28.07.2019 16:50:35

Jetzt ist es so
Array
(
[0] => 0,61of2
)

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Hilfe beim dem script hier

Beitrag von cronoik » 28.07.2019 16:58:58

Ist das eine Frage? Die Ausgabe bedeutet das du 2 Kerne hast und diese zu 30.5% ausgelastet waren in der letzten Minute laut uptime.
Hilf mit unser Wiki zu verbessern!

luiluiboy014
Beiträge: 15
Registriert: 27.07.2019 15:12:29

Re: Hilfe beim dem script hier

Beitrag von luiluiboy014 » 28.07.2019 17:11:46

habe es gelöst bekommen wie kann ich aus lesen was für eine cpu drine ist das ich das auch abfragen kann

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Hilfe beim dem script hier

Beitrag von cronoik » 28.07.2019 17:15:02

Bitte mach fuer unterschiedliche Fragen eigenstaendige Threads auf und lasse bei deinen Fragen auch eigene Bemuehungen erkennen.
Hilf mit unser Wiki zu verbessern!

DeletedUserReAsG

Re: Hilfe beim dem script hier

Beitrag von DeletedUserReAsG » 28.07.2019 17:33:24

luiluiboy014 hat geschrieben: ↑ zum Beitrag ↑
28.07.2019 17:11:46
habe es gelöst bekommen wie kann ich aus lesen was für eine cpu drine ist das ich das auch abfragen kann
Daß ist eihnfach nim eihnfach di fünft Zeihle vohn /proc/cpuhinfo.

scnr

willy4711

Re: Hilfe beim dem script hier

Beitrag von willy4711 » 28.07.2019 17:38:14

Sorry, das ich mich hier einmische, aber ab und zu spiele ich halt auch gerne. :wink:
Ich finde das Skript sehr kompliziert und aufgeblasen, ich glaube auch nicht, dass der Thraed Starter versteht, was da passiert.
Hab mal ein einfaches gebaut (teilweise Übernommen von oben)

Code: Alles auswählen

#!/bin/sh

LOCATION=$1

model=$(cat /proc/cpuinfo |grep -m 1 "model name"|cut -d' ' -f 4-);
kerne=$(grep -c ^processor /proc/cpuinfo)
mhz=$(cat /proc/cpuinfo |grep -m 1 "cpu MHz"|cut -d' ' -f 3-);
mem=$(cat /proc/meminfo |grep MemTotal:|cut -c 15-30);
free=$(cat /proc/meminfo |grep MemFree:|cut -c 15-30);
ver=$(cat /proc/version|cut -d' ' -f 3);
Up=$(uptime |cut -c 13-18)

echo  \
"CPU: $model
CPU-Kerne:$kerne
CPU MHz  : $mhz
MemTotal : $mem 
MemFree  : $free 
Uptime [h]  :$Up
Kernel Version #: $ver" > $LOCATION

notify-send "INFO" "`cat ~/Procinfo`"

exit
Die Daten findet man wie oben geschrieben in:

/proc/cpuinfo
/proc/meminfo
/proc/version
sowie uptime

Ergänzen kann man da jetzt noch was die Verzeichnisse hergeben. :mrgreen:


LOCATION=$1 muss mit der Befehlszeile mitgegeben werden (bei mir wäre das die Datei ~/Procinfo)
Die Datei wird bei jeder Ausführung neu beschrieben

Befehl zum Starten:

Code: Alles auswählen

 ~/Dokumente/Skripte/Procinfo_direkt Procinfo
Ergibt dann (wobei da natürlich diverse Möglichkeiten zur Ausgabe bestehen)
2215
Zuletzt geändert von willy4711 am 28.07.2019 17:47:34, insgesamt 1-mal geändert.

willy4711

Re: Hilfe beim dem script hier

Beitrag von willy4711 » 28.07.2019 17:45:02

luiluiboy014 hat geschrieben: ↑ zum Beitrag ↑
28.07.2019 17:11:46
habe es gelöst bekommen wie kann ich aus lesen was für eine cpu drine ist das ich das auch abfragen kann
Hast du überhaupt schon mal die einzelnen Befehle im Terminal ausprobiert?
dann wäre dir aufgefallen, das diese Info in

Code: Alles auswählen

cat /proc/cpuinfo 
zur Verfügung steht.
Hast doch genügend Beispiele in den Skripten.
Probier doch einfach mal im Terminal, was die Einzelnen Befehle ergeben.

luiluiboy014
Beiträge: 15
Registriert: 27.07.2019 15:12:29

Re: Hilfe beim dem script hier

Beitrag von luiluiboy014 » 28.07.2019 20:17:00

tolles script so kann mann was lernen ;-) :D
willy4711 hat geschrieben: ↑ zum Beitrag ↑
28.07.2019 17:38:14
Sorry, das ich mich hier einmische, aber ab und zu spiele ich halt auch gerne. :wink:
Ich finde das Skript sehr kompliziert und aufgeblasen, ich glaube auch nicht, dass der Thraed Starter versteht, was da passiert.
Hab mal ein einfaches gebaut (teilweise Übernommen von oben)

Code: Alles auswählen

#!/bin/sh

LOCATION=$1

model=$(cat /proc/cpuinfo |grep -m 1 "model name"|cut -d' ' -f 4-);
kerne=$(grep -c ^processor /proc/cpuinfo)
mhz=$(cat /proc/cpuinfo |grep -m 1 "cpu MHz"|cut -d' ' -f 3-);
mem=$(cat /proc/meminfo |grep MemTotal:|cut -c 15-30);
free=$(cat /proc/meminfo |grep MemFree:|cut -c 15-30);
ver=$(cat /proc/version|cut -d' ' -f 3);
Up=$(uptime |cut -c 13-18)

echo  \
"CPU: $model
CPU-Kerne:$kerne
CPU MHz  : $mhz
MemTotal : $mem 
MemFree  : $free 
Uptime [h]  :$Up
Kernel Version #: $ver" > $LOCATION

notify-send "INFO" "`cat ~/Procinfo`"

exit
Die Daten findet man wie oben geschrieben in:

/proc/cpuinfo
/proc/meminfo
/proc/version
sowie uptime

Ergänzen kann man da jetzt noch was die Verzeichnisse hergeben. :mrgreen:


LOCATION=$1 muss mit der Befehlszeile mitgegeben werden (bei mir wäre das die Datei ~/Procinfo)
Die Datei wird bei jeder Ausführung neu beschrieben

Befehl zum Starten:

Code: Alles auswählen

 ~/Dokumente/Skripte/Procinfo_direkt Procinfo
Ergibt dann (wobei da natürlich diverse Möglichkeiten zur Ausgabe bestehen)
2215

Benutzeravatar
mig
Beiträge: 152
Registriert: 26.02.2003 13:21:58
Wohnort: wien
Kontaktdaten:

Re: Hilfe beim dem script hier

Beitrag von mig » 29.07.2019 10:54:33

Hallo

Nur der Schönheit halber die Zeile:

Code: Alles auswählen

notify-send "INFO" "`cat ~/Procinfo`"
durch

Code: Alles auswählen

notify-send "INFO" "`cat $LOCATION`"
ersetzen

Ansonsten gibt das Script halt nichts aus wenn was anderes als ~/Procinfo übergibt.

LG
Michael

Antworten