True Nas Scale Auto-Shutdown

Kasjo

Captain
Registriert
Aug. 2010
Beiträge
3.995
Grüße.

Ich spiele Aktuell mit FreeNas Scale in einer Vm rum, um zu sehen was es kann und ob is in Frage kommt eingesetzt zu werden.

Grundsätzlich ist mir klar das TrueNAS durchlaufen soll, weil enterprise usw.
Dennoch scheint es ja Möglichkeiten zu geben bei nicht Benutzung das NAS herunterzufahren.

Ich habe dazu bisher lediglich zwei Posts im Netz gefunden, welche aber wirklich alt sind. Bei einem wurde das ganze per Script gelöst was wohl dann auch als service integriert wurde. Beim Testen ob das Script überhaupt funktioniert spuckt mir aber TrueNas syntax fehler aus. Ich kenne mich mit den Script zeugs nicht aus.


Code:
#!/bin/sh
#set -xv

TMPFILE=/tmp/ifoctets.dat

SNMP_COMMUNITY=public
SNMP_HOST=localhost
SNMP_INDEX=1
SNMP_GET="/usr/local/bin/snmpget -c $SNMP_COMMUNITY -v 2c -Ov $SNMP_HOST ifInOctets.$SNMP_INDEX ifOutOctets.$SNMP_INDEX"

TIMEOUT=10
TIMEDELAY=60

THRESHOLD_IN=104858
THRESHOLD_OUT=104858

echo "Count    In Delta    Out Delta"

COUNT=$TIMEOUT
OCT_IN2=0
OCT_OUT2=0

while [ true ]; do
    let OCT_IN1=OCT_IN2 >/dev/null
    let OCT_OUT1=OCT_OUT2 >/dev/null

    $SNMP_GET | tr -s '\n' ' ' > $TMPFILE
    read C1 OCT_IN2 C2 OCT_OUT2 < $TMPFILE

    let OCT_IN=OCT_IN2-OCT_IN1 >/dev/null
    let OCT_OUT=OCT_OUT2-OCT_OUT1 >/dev/null

#    if [ ${OCT_IN-0} -le 0 -a ${OCT_OUT-0} -le 0 ]; then
    if [ ${OCT_IN-0} -lt $THRESHOLD_IN -a ${OCT_OUT-0} -lt $THRESHOLD_OUT ]; then
        let COUNT=COUNT-1 >/dev/null
    else
        COUNT=${TIMEOUT}
    fi

    printf " %.3d  %11d  %11d\n" $COUNT $OCT_IN $OCT_OUT

    [ $COUNT -le 0 ] && break || sleep $TIMEDELAY
done

echo "SHUTTING DOWN SERVER"
#shutdown -P now

Quelle: https://www.truenas.com/community/threads/shutdown-dependent-on-network-activity.2712/

Fehler:
Code:
: not foundcripts/shutdown.sh: 3:
: not foundcripts/shutdown.sh: 5:
: not foundcripts/shutdown.sh: 10:
: not foundcripts/shutdown.sh: 13:
: not foundcripts/shutdown.sh: 16:
Count    In Delta    Out Delta
: not foundcripts/shutdown.sh: 18:
: not foundcripts/shutdown.sh: 22:
/mnt/Main/Scripts/shutdown.sh: 46: Syntax error: end of file unexpected (expecting "then")

Das Ganze sieht recht simple für mich aus, auch was die Konfiguration bzw. das fein Tuning betrifft aber im Prinzip solls genau sowas sein. ein script oder so, was den netzwerktraffic beobachtet und wenn ein gewisser stand nicht überschritten wurde für ne zeit, soll das ding schlafen gehen. Da aber oberes Beispiel aus 2011 is und eben fehler hervorruft, wäre meine Frage ob von euch jemand sowas ähnliches schon mal umgesetzt hat.

Ähnlich habe ich einen Unraid server bereits am laufen, bei dem das genau so via plugin gelöst wird. Nachteil, die neuste Plugin Version läuft gar nicht mehr und wirklich gepflegt wird das ganze ohnehin nicht.

Mir is bewusst das es auch Lösungen gibt die zum einen den Pool überwachen und die anderen pingen im Prinzip Computer im Netzwerk an bis diese nicht mehr antworten. Sowas solls nicht werden. Der Server soll schon selber checken was Sache is.

Ein weiteres Script das ich gefunden habe ist Aktueller und soweit ausgereift das es im Prinzip auch prüft ob gerade Scrubbing läuft usw.
https://gist.github.com/tblaschke/35785b2c0f3a2f5b0f60974d3aa0585c

Bei dem weiß ich aber nicht obs über Ping geht, laufen tuts auch nicht da es ebenfalls Fehler meldet.


Kurz um: Habt ihr sowas schon mal umgesetzt oder kennt ihr aktuelle Möglichkeiten? Oder lasst ihr die 24/7 durchlaufen?
 
Hmm ich habe mir solche Scripte schon "immer" gemacht (> 10 Jahre locker), einfach weil ich es doof finde wenn die Server durchlaufen auch wenn die keiner nutzt.

Man muss das halt individuell anpassen, je nachdem was man für Dienste nutzt - glaube nicht dass es da ein universelle Lösung gibt, die wirklich dann alles abdecken - ein halbe Lösung wenn der Rechner ausgeht währenddessen den man nutzt ist halt einfach nix - oder der Server ist morgens immer noch an.

Aber es lohnt sich - bei uns spart das sehr viel Energie wenn der Server nicht sinnlos durchläuft weil die Anzeiten erstaunlich gering sind gegenüber den OFF-Zeiten.

Das mit Netzwerktraffic mache ich nicht, weil ich halt auch mal lokal was mache - z.B. Dateien auf dem Server konvertiere oder was durchrechnen lasse, von einer externen Laufwerk was einspiele oder wegschreibe - das soll halt auch berücksichtigt werden und dabei der Rechner nicht mittendrin ausgehen, sondern frühestens wenn das alles fertig ist - aber das halt Use-Case abhängig.

Bei mir gilt lange kein Zugriff auf Daten und Server ohne ZFS Fehler etc => aus die Kiste Strom sparen und Eisbären retten :D


Wenn Du magst kann ich ja mal meine Scripte posten die ich nutze in TrueNAS um den shutdown zu automatisieren - wir sind nur aktuell über Ostern halt in unserem Ferienhäuschen der TrueNAS Server steht aber daheim

Glaube das sind bei mir so 3-4 Scripte die ich nutze für den Autoshutdown.

Ich nutze die TrueNAS API für einige Funktionen, so dass das denke ich auf allen TrueNAS Systemen funktionieren sollte - allerdings lsof geht unter FreeBSD z.B. nicht, da muss man das anders machen(geht aber auch)

z.B. für den Test ob gerade ein Scrub läuft dann einfach als separates Script das ein Ergebnis zurückliefert

Code:
#!/bin/bash

. "/root/custom/truenas_conf.txt"

myCommand=$(echo "curl -s -X GET \"http://$myIP/api/v2.0/pool\" -H \"Authorization: Bearer $myAPIKey\" | grep \"\\\""state\\\"": \\\""SCANNING\\\"",\"")
myResult=$(bash -c "$myCommand")

if [ -z "$myResult" ]; then
   echo "~"
   exit 1
fi

myCommand=$(echo "curl -s -X GET \"http://$myIP/api/v2.0/pool\" -H \"Authorization: Bearer $myAPIKey\" | grep \"\\\""percentage\\\"":\" | sed 's/\..*//' | sed 's/[^0-9]*//'")
myResult=$(bash -c "$myCommand")
if [ "$myResult" = "0" ]; then
   myResult=1
fi

echo "${myResult}%"

exit 0

Ich mach das gern als separate Einheiten damit man die auch so testen kann und evtl in anderen Scripten auch nutzen kann (bei mir z.B. die Displayausgabe)
 
Zuletzt bearbeitet:
@Banned
Danke für die Links, in denen war ich auch bereits :D. Das ich mit dem Cron den server gezielt herunterfahren kann hatte ich im Hinterkopf behalten, für den fall es geht nicht anders. Wobei ich mir dahingehend dann noch nen kopf machen muss wie ich den server so in Zukunft betreibe. Deshalb in der VM.

Musste mich da auch erst mal durchwursten mit dem Benutzermanagment usw. Unraid is hier in vielen Ecken deutlich Simpler gestrickt. Aber wenn man mal weiß wies geht.

Zudem weiß ich nich, müsste das Skript oder der Cron auch checken ob grad n Scrub oder der gleichen läuft und dann bestenfalls nicht herunter fährt.

Bohnenhans schrieb:
Das mit Netzwerktraffic mache ich nicht, weil ich halt auch mal lokal was mache - z.B. Dateien auf dem Server konvertiere oder was durchrechnen lasse, von einer externen Laufwerk was einspiele oder wegschreibe - das soll halt auch berücksichtigt werden und dabei der Rechner nicht mittendrin ausgehen, sondern frühestens wenn das alles fertig ist - aber das halt Use-Case abhängig.
Ja das is der Knackpunkt. Bisher läuft unser Unraid server zu gewissen Zeiten. Der is auch viel zu Stromhungrig 24/7 laufen zu lassen.

Abends wenn alle anderen Clients ihre Backups drauf verfrachten, um 0 uhr springt er an um div. updates und andere Geschichten zu machen wie bsp. Scrub usw.

Und in der Regel, und das is jetz n Luxus ding... springt er am Nachmittag an um die Steam Bibliothek upzudaten, damit ich am Abend die Updates einfach übers Netzwerk schiebe :) Aber der Lauf muss in der Regel nicht sein. Grundsätzlich wird der Server über WOL gestartet. Automatisiert via Alexa.

Bei Unraid gabs halt n Plugin, was Array disks und Netzwerk beobachtet hat. Man konnte sogar einstellen was das Plugin qausi nicht zeiht, sprich Sperrzeiten bei den es den Server online lassen muss, und der rest geht bei uns nur übers Netzwerk, Seis backups oder Jellyfin streams.
Und für Lokale Arbeiten haste das Plugin einfach ausgeschalten. Dann läuft unraid ja auch durch.

Naja, bin auch erst seit drei Tagen an TrueNas dran. vorher nie probiert. Scripts habe ich eben auch aktuellere gefunden. Da muss ich mal gucken wie ich die dann anpasse.

Grundsätzlich wäre für mein UseCase die Netzwerk Verbindung am wichtigsten, weil damit decke ich die nutzung ab wenn jellyfin läuft oder genutzt wird, wenn ich per RDP in ner VM bin oder wenn eben backups rübergeschoben werden. Das mit dem Scrub Erkennung wäre auch notwendig.



Bohnenhans schrieb:
Wenn Du magst kann ich ja mal meine Scripte posten die ich nutze in TrueNAS um den shutdown zu automatisieren - wir sind nur aktuell über Ostern halt in unserem Ferienhäuschen der TrueNAS Server steht aber daheim
Würd ich gerne in Anspruch nehmen. Genießt die freien Tage. Das hat keine Eile. Muss ich noch n bissl Experimentieren. Ich will eh erst alles checken und sicher stellen das TrueNas das macht was ich will und ich mit klarkomme bevor das in den Live Betrieb geht.

Ich google noch weiter ob ich irgendwo in den tiefen was finde was evtl. was bringt.

Nebenbei hab ich das hier noch gefunden:
https://gist.github.com/erkr/843b9c7c2b6fa511c09a5773029c32e0

Da jammert aber Truenas über die Klammern in zeile 62 oder 67. Glaub Kompatibel is das auch nich ganz.
 
Zuletzt bearbeitet:
Hmmm welche version von truenas nutzt du denn? bei mir meckert das nicht auf meinem vm truenas

Denke das ist core was du hast und nicht scale und bash woanders.

Naja ob eine vm läuft oder nicht kannst - vermutlich - auch problemlos anders sicher herausfinden, ich teste auch ob z.b minecraft server läuft.
 
Zuletzt bearbeitet:
TrueNas Scale.

Screenshot 2024-03-30 224544.png

Ich möchte nur mal anführen das es durchaus sein kann das ich zu dämlich bin das Script auszuführen.
Ich machs halt über die shell.
Screenshot 2024-03-30 224746.png

Leider finde ich auch nirgends n Hinweis ob das Script den überhaupt läuft. Manche "scheinen" zu laufen weil da keine Fehlermeldung zu kommt aber auch nix weiter da in der Konsole passiert.
 
Irgendwas stimmt halt mit deinem Script nicht, siehe die Fehlermeldung: Syntax error
 
Du startest das mit sh :D dachte weil FreeBSD default sh hat hast Du evtl core.



Du musst das mit bash starten also

Code:
sudo /bin/bash -c /mnt/Main/......

sh kennt u.a. kein () bash schon - die falsche shell ist oft das Problem, weil die halt unterschiedliche Funktionen haben.
 
Zuletzt bearbeitet:
Dachte ich mir schon :D, naja gut das ich da nochmal nachfrage. Das Probiere ich auch noch aus aber aktuell hänge ich jetzt noch an einem der ersten skripte.



mit dem /bin/Bash hats geklappt.

Das Script wirft bis jetzt keine fehler. Eigentlich gar nichts :D muss also warten bis die vm herunterfährt. Gibts eine Möglichkeit sich irgendwie anzeigen zu lassen was das Skript gerade macht oder wo es gerade is?


Ich hab jetzt folgendes bisher erreicht.
Das Script:
Code:
#!/bin/sh
#set -xv

TMPFILE=/tmp/ifoctets.dat

SNMP_COMMUNITY=public
SNMP_HOST=localhost
SNMP_INDEX=1
SNMP_GET="/usr/local/bin/snmpget -c $SNMP_COMMUNITY -v 2c -Ov $SNMP_HOST ifInOctets.$SNMP_INDEX ifOutOctets.$SNMP_INDEX"

TIMEOUT=10
TIMEDELAY=60

THRESHOLD_IN=104858
THRESHOLD_OUT=104858

echo "Count    In Delta    Out Delta"

COUNT=$TIMEOUT
OCT_IN2=0
OCT_OUT2=0

while [ true ]; do
    let OCT_IN1=OCT_IN2 >/dev/null
    let OCT_OUT1=OCT_OUT2 >/dev/null

    $SNMP_GET | tr -s '\n' ' ' > $TMPFILE
    read C1 OCT_IN2 C2 OCT_OUT2 < $TMPFILE

    let OCT_IN=OCT_IN2-OCT_IN1 >/dev/null
    let OCT_OUT=OCT_OUT2-OCT_OUT1 >/dev/null

#    if [ ${OCT_IN-0} -le 0 -a ${OCT_OUT-0} -le 0 ]; then
    if [ ${OCT_IN-0} -lt $THRESHOLD_IN -a ${OCT_OUT-0} -lt $THRESHOLD_OUT ]; then
        let COUNT=COUNT-1 >/dev/null
    else
        COUNT=${TIMEOUT}
    fi

    printf " %.3d  %11d  %11d\n" $COUNT $OCT_IN $OCT_OUT

    [ $COUNT -le 0 ] && break || sleep $TIMEDELAY
 
 
    done
 
    shutdown -P now
 


echo "SHUTTING DOWN SERVER"
#shutdown -P now

Das Scheint soweit eigentlich zu laufen bis auf einen kleinen Haken. Es zieht die Daten aus snmp so wie ich das verstanden habe. Der Dienst als solches wurde auch gemäß der quelle gestartet, aber das hier:

Enable SNMP in services, then use "snmpwalk -c public -v 2c localhost ifName" to determine the index (.1, .2) of your ethernet interface.

Then you can get the interface in/out stats using snmpget, eg. if your ethernet interface is index #1, "snmpget -c public -v 2c -Ov localhost ifInOctets.1 ifOutOctets.1".
Funktioniert nicht. Er findet die befehle snmpwalk und auch den snmpget befehl im script nicht.

Gemäß Dem hier:
https://www.truenas.com/docs/scale/22.12/scaletutorials/systemsettings/services/snmpservicescale/#:~:text=SNMP (Simple Network Management Protocol,Service Screen for setting information.

Sollte ich bei Befehl ls /usr/local/share/snmp/mibs laut dem Bildchen zumindest eine "LS-Sensors-MiB.txt" stehen.
Bei mir is der Punkt leer. Das kann jetzt evtl. an der VM liegen, oder ich muss die Manuell anlegen. Keine Ahnung..

Aber das is zumindest der Grund warum das Script im Prinzip nix macht außer sich zu wiederholen weil es mm Prinzip keine Infos bekommt.
 
Zuletzt bearbeitet:
Hehe ja ich hab das auch nur gestartet und dacht nanü das tut ja nix


Allerdings die scripts sind halt 99% der Zeit im Modus "sleep" weil die halt nur alle paar Sekundne nachsehen ob die Runterfahrbedingung erfüllt ist.


Man kann ja aiuch an ein paar Stellen einfügen

Code:
echo "123"


123 halt durch alles mögliche ersetzen einfügen

Das script eins ist aber wiederrum KEIN bash script sondern das ist ein sh script!


Das Script 1 sollte alle 60 Sekunden was ausgeben - wenn das mit snmp tut


Ich hab mal kurz auf dem truenas scale hier nachgeschaut - obwohl alles was snmp im Namen hat installiert ist sind die tools zu snmp nicht da - glaube also nicht, dass das wie in dem script 1 so (noch?) funktioniert

Glaube das sind jetzt alles pythonmodule?

1711959460861.png

Ergänzung ()


Was aber gehen würde ist mit ifstat abzufragen ob auf dem Netzwerkinterface was los ist, glaub das bau ich mir auch mal in mein shutdown script ein :D man muss halt einen bestimmten Schwellenwert setzen, weil ja auch wenn man nichts drauf macht ab und zu Daten übertragen werden z.B. samba "ich bin noch da" etc.

Aber da kann man ja sagen alles unterhalb von z.B. 50 Kbit/s ist nichts was man selber macht

Code:
ifstat -n -a -q 10 1


1711960546063.png
 
Zuletzt bearbeitet:
Da es hier gerade regnet und jetzt gerade ien bisserl freie Zeit hab ich das mal in ein paar Minuten zusammengeklöppelt, das ja im Prinzip eigentlich nicht so schwer wenn man tools wie ifstat hat - hihi nicht schoen aber es tut xD soll ja auch nur eine kleine quick and dirty Demo sein wie man das machen kann basierend auf Netzwerktraffic herunterzufahren.

Und ich hab mal ganz viel Ausgabekram reingemacht damit man och sieht was passiert

Die Netzwerkkarte die ueberwacht werden soll muss man halt eintragen bei mir ist das "enp2s0"#

Eingestellt ist nach 120 Sekunden wenn nix los ist runterfahren, der Wert ist sicher in der Praxis zu kurz :D aber zum testen passt das.... kann man ja dann einfach "myShutdownTimeInSec=120" anpassen wie man will.


Glaube bei sowas gibt es halt wenig im Netz weil die Leute die sowas sich einbasteln halt meistens scripte kurz selber basteln und da jeder denkt och jo das kann sich doch jeder selber kurz häkeln, der am TrueNas rumschraubt - vermute ich halt mal. - Ohne die eigentlich unnötigen Bildschirmausgaben etc wäre das ja ein echt kurzes Script


Ich werde das mal wenn wir wieder zu Hause sind mal in mein "grosses" Shutdownscript integrieren, das überwacht noch andere Sachen, wie ZFS Status, Scrubbing usw usw und fährt dann halt wenn da was nicht passt nicht runter.

Code:
#!/bin/bash


#---Anpassbar

myNetworkInterface="enp2s0"
myShutdownTimeInSec=900   #   900 = 15 Minuten z.B.
myDefaultKBITAllowed=25  
myStartUpDelayInSec=300  # Zeit damit Netzwerkkarten und sonstiger Kram voll verfuegbar
myCheckTime=5            # soviele Sekunden werden pro Messung beruecksichtigt
myTempFile="/tmp/autoshutdown.tmp"
# myDebug="0" -> Ausgabe aus,   myDebug="1"  ->  Ausgabe an
myDebug="0"

#---Anpassbar Ende


myDataCounterOK=0
myTempFileToggle="1"

debug_print () {
    if [ $myDebug = "1" ]; then
        echo "$1"
    fi
}


debug_print ""
debug_print ""
debug_print "Starte $0"
debug_print ""
debug_print ""


myNumberOfRetries=$(($myShutdownTimeInSec / $myCheckTime))

debug_print "Shutdown-Zeit in Sekunden: $myShutdownTimeInSec,  KBit System: $myDefaultKBITAllowed,  Anzahl der Testdurchlaeufe: $myNumberOfRetries"
debug_print "TempFile: $myTempFile"
debug_print ""

debug_print "-n Warte $myStartUpDelayInSec Sekunden bis Ausfuehrung...."
/usr/bin/sleep $myStartUpDelayInSec
debug_print "OK Wartezeit abgelaufen"
debug_print ""

while :
do
 
    if [ $myDebug = "1" ]; then
       myToggleTempFile=$(echo "$myTempFile.$myTempFileToggle")

    if [ "$myTempFileToggle" = "0" ]; then
        myTempFileToggle="1"
    else  myTempFileToggle="0"
    fi
    else myTempFileToggle="$myTempFile"
    fi

    /usr/bin/ifstat -n -i "$myNetworkInterface" -q $myCheckTime 1 > "$myToggleTempFile"


    myDataIn=$(more "$myToggleTempFile" | grep "\." | awk '{print $1}')
    myDataOut=$(more "$myToggleTempFile" | grep "\." | awk '{print $2}')

   # Runyde auf ganze Zahlen
   myDataIn=$(echo "$myDataIn" | sed 's/\..*//')
   myDataOut=$(echo "$myDataOut" | sed 's/\..*//')

   debug_print "Netzwerk IN: $myDataIn KBit/s,   OUT: $myDataOut KBit/s"

   if [ $myDataIn -gt "$myDefaultKBITAllowed" ]; then
      myDataCounterOK=0
      debug_print "Ruecksetzen des Counters, da DataIn zu gross ($myDataIn > $myDefaultKBITAllowed)"
   fi

   if [ $myDataOut -gt "$myDefaultKBITAllowed" ]; then
      myDataCounterOK=0
      debug_print "Ruecksetzen des Counters da DataOut zu gross ($myDataOut > $myDefaultKBITAllowed)"
   fi

   myDataCounterOK=$((myDataCounterOK+1))
   debug_print "$myDataCounterOK von $myNumberOfRetries Durchlaeufen fuers Runterfahren"

   if [ $myDataCounterOK -gt $myNumberOfRetries ]; then
      debug_print "Fahre System herunter...."
      /usr/sbin/shutdown -h now
   fi

done

Als Startscript hab ich in truenas das eingetragen

Code:
#!/bin/bash
/usr/bin/nice -n 19 /root/autoshutdown.sh &
exit 0
 
Zuletzt bearbeitet:
Bohnenhans schrieb:
Das script eins ist aber wiederrum KEIN bash script sondern das ist ein sh script!
Ja ich weiß. Jetzt wo ich weiß wie ich das ausführe ^^

Bohnenhans schrieb:
Ich hab mal kurz auf dem truenas scale hier nachgeschaut - obwohl alles was snmp im Namen hat installiert ist sind die tools zu snmp nicht da - glaube also nicht, dass das wie in dem script 1 so (noch?) funktioniert
Ja das weiß ich halt auch nich. Man kann zwar die snmp Dienste starten, sprich der dienst an sich is in TrueNas schon noch da, daher ging ich davon aus das es drin is. Aber kann gut sein, ich mein die meisten threads dazu sind halt auch echt alt.
Bohnenhans schrieb:
Was aber gehen würde ist mit ifstat abzufragen ob auf dem Netzwerkinterface was los ist, glaub das bau ich mir auch mal in mein shutdown script ein :D man muss halt einen bestimmten Schwellenwert setzen, weil ja auch wenn man nichts drauf macht ab und zu Daten übertragen werden z.B. samba "ich bin noch da" etc.

Aber da kann man ja sagen alles unterhalb von z.B. 50 Kbit/s ist nichts was man selber macht
Ja das is auch beim Unraid Server so gesetzt. Allerdings halt bei 100Kbit/s die Sekunde. Da muss dann nur der Timeout lange gesetzt werden und und gut is in der Regel. Würde ich eh anpassen müssen, abhängig vom kram was im background läuft.

Bei nem Script was halt noch Scrub und Smart oder was weiß ich prüft is es halt auch praktisch weil man nicht wie in Unraid noch ne Sperrzeit festlegen muss oder das plugin abschalten. Is n Nice to have und wäre im Prinzip die eierlegende wollmilchsau.

Bei Unraid is das Plugin halt auch veraltet, aber das is die letzte version die funktioniert. Die neuere zum Beispiel erkennt gar kein Netzwerk traffic mehr bzw. startet die Überwachung gar nicht erst. Und der Ersteller, obwohl das schon welche angesprochen haben reagiert drauf nicht. Da sind die Probleme der Leute die das ding ohnehin 24/7 laufen lassen wichtiger.

Das mit dem feedback find ich halt schade. Bei Unraid gibts n generelles systemlog und da kann man im Prinzip immer nachvollziehen was welches Script oder plugin grad macht. Nachteil, das log is nach nem neustart auch weg ^^ Aber dafür hatte ich mir nen PI aufgebaut. Der zieht sich die logs.


Bohnenhans schrieb:
Glaube bei sowas gibt es halt wenig im Netz weil die Leute die sowas sich einbasteln halt meistens scripte kurz selber basteln und da jeder denkt och jo das kann sich doch jeder selber kurz häkeln, der am TrueNas rumschraubt

Das denke ich auch. Ich sollte, bzw. müsste mir sowas wohl ohnehin aneignen, weil im Prinzip stehe ich vorm selben problem wenn bei nem update da irgendwas wieder geändert wird. Hätte jetzt auch nicht gedacht das sowas ne Baustelle wird.

Gut, is auch erst mal n Test.

Aber wenn ichs hinbekomme das eben Netzwerk und Scrub usw. kontrolliert werden dann kann ich im grunde den server "vergessen". Bei Unraid mus sich aktiv schon das das Sleep Plugin usw. abschalten weil das in Verbindung mit nem ZFS Pool und der HDD I/O nicht funktioniert. Das erkennt auch kein Scrub oder Parity.

Frage: Diese Echo Befehle, die kann ich doch eigentlich bei nicht gebrauch per # Abschalten oder? Dienst ja im Prinzip nur der Kontrolle.


Vorab sei mal gesagt: Danke dir. Danke das du dir überhaupt die Zeit nimmst dich dem anzunehmen. Die meisten Threads zu sowas enden meist im: Guck im Handbuch.
Wenn ich das mit dir hier das hinbekomme das Truenas das machen soll was ich will spendiere ich dir n Kasten Bier ^^
 
jo die sind ja nur drin damit du siehst das sich da was tut - später bau ich das dann eh wieder so dass man die optional ein oder abschalten kann. :D

Hab das mal kurz upgedated - je nachdem wie man myDebug setzt sind jetzt die Ausgaben an oder komplett aus.


Naja das ja nun kein grosser Zeitaufwand, waren vielleicht so 15 Minuten - und denke das ja auch für meine Server ganz interessant den Netzwerktraffic mal zu überwachen.

So autoshutdown etc nutze ich doch auch - das mal zu Erweitern ist nie verkehrt.

Und das funktioniert hier auf meinem Testtruenas problemlos - es resettet die Wartezeit sobald Daten übertragen werden wieder auf die eingestelle Zeit und ist dann ein Weile gar nix los (bzw halt < als 25 Kbit) geht der aus.

Wirklich viel muss man für scripte und Co gar nicht können - super als Basis sind "sed" <= Texte verändern und "awk" und grep - damit deckt man denke ich 80% der Funktionen ab, der Rest ist dann nur noch eher Kleinkram. Gerade sed sieht am Anfang echt kompliziert aus - aber es ist ein echt super tool - glaube habe ganz wenige Scripte in denen ich das nicht brauche.

Cool ist halt dass in bash echt viel geht, für das man dann kein Programm oder so schreiben muss.
 
Zuletzt bearbeitet:
Das klappt auch ganz gut wenn man Filme von dem Server schaut - auch wenn der Player cached - der Counter wird ja bei jedem grösseren Zugriff wieder auf Anfang gesetzt

Die Werte muss man evtl halt noch tweaken - vielleicht z.B. für MP3s oder so? - aber die sind ja am Anfang des Scripts einstellbar. Aber denke die 25 Kbit (oder KByte/sec) sind kein schlechter Startwert

1711989962997.png
 
Zuletzt bearbeitet:
Jo das Funktioniert schon sehr gut. Genial. Hilft auf jeden fall n ganzes stück weiter.
Gibt es eine Möglichkeit, wenn ich das jetzt so einbaue, zwischen drin irgendwo nachzusehen ob das Script läuft bzw. ein Befehl wo ich den Status des scriptes abfragen kann?


Nebenbei mal ne frage, unter Unraid muss ich immer einen Befehl ausführen, damit im NIC auch WOL korrekt gesetzt wird. Hatte da anfangs Probleme das WOL nicht ging. Liegt aber eher am Asus board.

Code wäre: ethtool -s eth0 wol g

Gibt es im Truenas das auch oder muss ich das ebenfalls per Script laufen lassen? Natürlich nicht genau so. Aber im Prinzip musste ich bei Unraid auch das so einfügen das beim start/Herunterfahren das gesetzt wird sonst versetzt sich die NIC nicht in diesen zustand. Frag mich nicht wieso. Im Bios is alles soweit gesetzt, aber das Bios is auch extrem beschnitten was dies betrifft.
 
naja Du könntest z.b. nachsehen ob die temp Datei da ist und welches Datum die hat

oder Du machst in der shell einfach ein "ps aux | grep "autoshutdown.sh"

bzw halt so wie Du das genannt hast - falls nicht als root dann mit sudo

Auf für die Sitzung permanent root kannst einfach switchen mit "sudo bash" mach ich immer automatisch :D

Hmm ich nutze im Bios einfach "Power on" after power loss - weil ich die Steckdosen zentral schalte aber ethtool kann man problemlos in ein startund in ein stop script einbauen das dann automatisch immer ausgeführt wird.

Bei meinem truenas display umbau hab ich das auch gemacht, der zeigt auch am Display an dass er aus ist - mit ePaper geht das ja ohne Strom.

https://pics.computerbase.de/forum/video/1335/1335430-ffbb470b1b79cb646355ee38c60833b9.mp4

Gerade baue ich das aber vom internen 2 Din Display auf so externe Displays in so Plexisglasständer um, das praktischer in unserem "HeimServerraum" - wir haben da aktuell 4 Server stehen, dann sieht man auf einen Blick deren Zustand wenn man da reinschaut.

:D
 
Zuletzt bearbeitet:
LOL

Was er alles gebastelt hat.....

Probiere das eben mal aus mit dem ps aux.

edit

Das Display is ja mal anders krass. Ich entdecke hier gerade völlig neue Möglichkeiten. die Frau wird nicht begeistert sein....
 
Hehe naja ist schon die 2. Version die erste war kleiner

Mit TrueNAS kann man halt super viel umstricken - das hat auch eine API mit der man viele Sachen sauber auslesen kann ohne dass man da am System vorbei muss.


Aber auch schon gut integriert

1711999144754.png
 
Bohnenhans schrieb:
Gerade baue ich das aber vom internen 2 Din Display auf so externe Displays in so Plexisglasständer um, das praktischer in unserem "HeimServerraum" - wir haben da aktuell 4 Server stehen, dann sieht man auf einen Blick deren Zustand wenn man da reinschaut.
Alles klar.... ich sehe bei dir is das auch son dauer zwang XD

Na das mit dem WOL ist erst mal ne andere Baustelle. Das würde ich erst angreifen wenn TrueNAS quasi Nativ auf der Maschiene läuft. evtl. erübrigt sich das, da ich nicht ausschließen kann das es da n generells problem seitens unraid ist. Die Einstellungen für WOL usw. sind Bios Technisch korrekt gesetzt.

Prüfen kann ich das aber erst wenn TrueNas dann drauf läuft und herunterfährt. Dann sehe ich ja direkt am LanPort ob er aus is oder nicht.
Das Hat aber auf Asus brettern schon immer ein wenig gezickt. Vorher hatte ich n Intel Gigabyte board, was bios technisch schon besser aufgestellt ist was die Einstellungen betrifft.
 
Zuletzt bearbeitet:
Im Winter mach ich halt öfters was mit Elektronik / Heimautomation /Basteln und Co im Sommer mehr so Garten / Haus aussen und Co.

Hehe aber auch beim Garten bin ich aktuell am konkreten Überlergen einen kleinen Teil zu automatisieren mit so Komplett Pflanzrobotern :D ich find so Sachen halt spassig.

Mit denen hier
 
Zurück
Oben