Echo-Betriebszeit in Linux

955
Nicole Romain

Ich muss die Anzahl der Benutzer auf dem System ermitteln, und wenn der Wert über oder über einer im Skript festgelegten Benutzeranzahlvariable liegt, drucken Sie aus, wie lange das System aktiv war und wie hoch die Systemlast ist. Wie füge ich das in mein Echo ein? Hier in meinem Code

#!/bin/sh # # Syswatch Shows a variety of different task based on my Linux System # # description: This script will first check the percentage of the filesystem # being used. If the percentage is above ___, the root user will # be emailed. There will be 4 things echoed in this script. The # first thing being the amount of free/total memory being used, # second the amount of free/total swap space being used, the # third is the user count, and the last thing is the amount # of time that the system has been up for and the system load.  #Prints amount of Free/Total Memory and Swap  free -t -m | grep "Total" | awk '{ print "Free/Total Memory : "$4"/"$2" MB";}' free -t -m | grep "Swap" | awk '{ print "Free/Total Swap : "$4"/"$2" MB";}'  #Displays the user count for the system  printf "User count is at %d\n" $(who | wc -l)  count=$(who | wc -l) if [ $count -eq 2 ] then echo "The system has been up for _______ with a system load of average: __" fi  exit 0 
1

1 Antwort auf die Frage

1
Dan Cornilescu

uptimeliefert die Informationen, nach denen Sie suchen, so dass Sie sie einfach anrufen können statt echo:

> uptime 23:40pm up 13 days 8:09, 6 users, load average: 1.28, 1.25, 1.23 

Wenn das Format nicht zufriedenstellend ist, können Sie die echoAussage durch Folgendes ersetzen :

uptime | sed 's/.*up/The system has been up for/' | sed 's/,.*load/ with a system load/' 

Oder wenn Sie wirklich verwenden möchten, können echoSie die uptimeAusgabe analysieren, um die gewünschten Werte zu erhalten (wie Sie es tun möchten $count) und sie in der Echo-Anweisung verwenden.

Side Notes:

  • Sie erhalten bereits die Anzahl der Benutzer, wenn Sie den Code so ändern konnten, dass er nicht erneut aufgerufen wird:
count=$(who | wc -l) printf "User count is at %d\n" $count 
  • Der Operator 'größer oder gleich' lautet -genicht -eq:

wenn [$ count -ge 2]