SSH-Login-Nachricht aufpeppen

Status
Für weitere Antworten geschlossen.

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.541
Punkte für Reaktionen
1.385
Punkte
234
Ich bin auf einem Blog (indibit.de) auf die Möglichkeit gestoßen die SSH-Login-Nachricht für einen Raspberry etwas aufzupeppen.

Ich habe das dortige Script etwas umgeschrieben und auf die DS angepasst.

Wenn ich mich nun per SSH als root einlogge, sieht das so aus:

sshlogin.jpg

Bisher habe ich es nicht geschafft die Temperatur der CPU auszulesen. Falls da jemand einen Tipp hat, immer her damit. Auch kann das Script gerne weiter aufgepeppt werden.

Rich (BBCode):
#!/bin/sh
# dynamische MOTD
# Aufruf in /etc/profile (letzte Zeile)
 
# Datum & Uhrzeit
DATUM=`date +"%a, %e. %B %Y"`
 
# Hostname
HOSTNAME=`hostname -f`
 
# Uptime
UP0=`cut -d. -f1 /proc/uptime`
UP1=$(($UP0/86400))        # Tage
UP2=$(($UP0/3600%24))        # Stunden
UP3=$(($UP0/60%60))        # Minuten
UP4=$(($UP0%60))        # Sekunden
 
# Durchschnittliche Auslasung
LOAD1=`cat /proc/loadavg | awk '{print $1}'`    # Letzte Minute
LOAD2=`cat /proc/loadavg | awk '{print $2}'`    # Letzte 5 Minuten
LOAD3=`cat /proc/loadavg | awk '{print $3}'`    # Letzte 15 Minuten
 
# Temperatur
TEMP=`` # CPU.Temperatur (bisher keine Lösung)
 
# Speicherbelegung
DISK1=`df -h | grep 'dev/vg1000/lv' | awk '{print $2}'`    # Gesamtspeicher
DISK2=`df -h | grep 'dev/vg1000/lv' | awk '{print $3}'`    # Belegt
DISK3=`df -h | grep 'dev/vg1000/lv' | awk '{print $4}'`    # Frei
 
# Arbeitsspeicher
RAM1=`free -h | grep 'Mem' | awk '{print $2}'`    # Total
RAM2=`free -h | grep 'Mem' | awk '{print $3}'`    # Used
RAM3=`free -h | grep 'Mem' | awk '{print $4}'`    # Free
RAM4=`free -h | grep 'Mem' | awk '{print $6}'`    # Cache
RAM5=`free -h | grep 'Swap' | awk '{print $2}'`    # Swap Total
RAM6=`free -h | grep 'Swap' | awk '{print $3}'`    # Swap used
RAM7=`free -h | grep 'Swap' | awk '{print $4}'`    # Swap free

# IP-Adressen ermitteln
if ( ifconfig | grep -q "eth0" ) ; then IP_LAN=`ifconfig eth0 | grep "inet addr" | cut -d ":" -f 2 | cut -d " " -f 1` ; else IP_LAN="---" ; fi ;
if ( ifconfig | grep -q "wlan0" ) ; then IP_WLAN=`ifconfig wlan0 | grep "inet addr" | cut -d ":" -f 2 | cut -d " " -f 1` ; else IP_WLAN="---" ; fi ;

echo -e "\033[0;37m
\033[0;37m  ~~~~~~~~~~~~
\033[0;37m |           \033[32m-\033[0;37m|  Datum.........: \033[1;32m\033[1;36m$DATUM\033[0;37m
\033[0;37m |           \033[32m-\033[0;37m|  Hostname......: \033[1;33m$HOSTNAME\033[0;37m
\033[0;37m |           \033[32m-\033[0;37m|  Uptime........: $UP1 Tage, $UP2:$UP3 Stunden
\033[0;37m |           \033[32m-\033[0;37m|  Ø Auslastung..: $LOAD1 (1 Min.) | $LOAD2 (5 Min.) | $LOAD3 (15 Min.)
\033[0;37m |            |  Temperatur....: $TEMP °C
\033[0;37m |         \033[34m[]\033[0;37m |  Speicher......: Gesamt: $DISK1 | Belegt: $DISK2 | Frei: $DISK3
\033[0;37m |         \033[0;32m(c)\033[0;37m|  RAM...........: Gesamt: $RAM1 | Belegt: $RAM2 | Frei: $RAM3 | Cache: $RAM4
\033[0;37m |         \033[34m(\033[31m'\033[34m)\033[0;37m|  Swap..........: Gesamt: $RAM5 | Belegt: $RAM6 | Frei: $RAM7
\033[0;37m | DS216+     |  IP-Adressen...: LAN: \033[1;35m$IP_LAN\033[0;37m | WiFi: \033[1;35m$IP_WLAN\033[0;37m
\033[0;37m  ~~~~~~~~~~~~
\033[m"

Quelle vom Urscript:
https://indibit.de/raspberry-pi-ssh-login-nachricht-anpassen-motd/
Der Blogger dort müsste hier auch im Forum unterwegs sein. Ich hoffe, dass er mir nicht böse ist. Falls doch, bitte melden. Danke.
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
130
Punkte
89
CPU Temperatur(en):

Rich (BBCode):
# CPU Temperaturen einlesen
cnt=0; TEMP=0
for FILE in `ls /sys/devices/platform/coretemp.0/temp?_input`; do
    TEMP=$[TEMP + $(cat "${FILE}")]
    cnt=$[cnt+1]
done
TEMP=$[TEMP/cnt/1000]

Thermal-Status der DS:

Rich (BBCode):
# Thermal-Status per SNMP-Abfrage
STATUS=$(snmpwalk -v 2c  -c syno -O qv 127.0.0.1 1.3.6.1.4.1.6574.1.2.0)

Der Termal-Status ist "nicht" die CPU Temperatur :)
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.541
Punkte für Reaktionen
1.385
Punkte
234
CPU Temperatur(en)
Herzlichen Dank.

Ich habe es eingefügt, sowie nun auch die HDD-Temperaturen eingebunden:

Rich (BBCode):
#!/bin/sh
# dynamische MOTD
# Aufruf in /etc/profile (letzte Zeile)
 
# Datum & Uhrzeit
DATUM=`date +"%a, %e. %B %Y"`
 
# Hostname
HOSTNAME=`hostname -f`
 
# Uptime
UP0=`cut -d. -f1 /proc/uptime`
UP1=$(($UP0/86400))        # Tage
UP2=$(($UP0/3600%24))        # Stunden
UP3=$(($UP0/60%60))        # Minuten
UP4=$(($UP0%60))        # Sekunden
 
# Durchschnittliche Auslasung
LOAD1=`cat /proc/loadavg | awk '{print $1}'`    # Letzte Minute
LOAD2=`cat /proc/loadavg | awk '{print $2}'`    # Letzte 5 Minuten
LOAD3=`cat /proc/loadavg | awk '{print $3}'`    # Letzte 15 Minuten
 
# CPU Temperaturen
cnt=0; TEMP=0
for FILE in `ls /sys/devices/platform/coretemp.0/temp?_input`; do
    TEMP=$[TEMP + $(cat "${FILE}")]
    cnt=$[cnt+1]
done
TEMP=$[TEMP/cnt/1000]

# HDD Temperaturen
sdatemp=$(smartctl -d ata -a /dev/sda | grep "194 Temperature" | cut -c 129-130)
sdbtemp=$(smartctl -d ata -a /dev/sdb | grep "194 Temperature" | cut -c 129-130)
 
# Speicherbelegung
DISK1=`df -h | grep 'dev/vg1000/lv' | awk '{print $2}'`    # Gesamtspeicher
DISK2=`df -h | grep 'dev/vg1000/lv' | awk '{print $3}'`    # Belegt
DISK3=`df -h | grep 'dev/vg1000/lv' | awk '{print $4}'`    # Frei
 
# Arbeitsspeicher
RAM1=`free -h | grep 'Mem' | awk '{print $2}'`    # Total
RAM2=`free -h | grep 'Mem' | awk '{print $3}'`    # Used
RAM3=`free -h | grep 'Mem' | awk '{print $4}'`    # Free
RAM4=`free -h | grep 'Mem' | awk '{print $6}'`    # Cache
RAM5=`free -h | grep 'Swap' | awk '{print $2}'`    # Swap Total
RAM6=`free -h | grep 'Swap' | awk '{print $3}'`    # Swap used
RAM7=`free -h | grep 'Swap' | awk '{print $4}'`    # Swap free

# IP-Adressen ermitteln
if ( ifconfig | grep -q "eth0" ) ; then IP_LAN=`ifconfig eth0 | grep "inet addr" | cut -d ":" -f 2 | cut -d " " -f 1` ; else IP_LAN="---" ; fi ;
if ( ifconfig | grep -q "wlan0" ) ; then IP_WLAN=`ifconfig wlan0 | grep "inet addr" | cut -d ":" -f 2 | cut -d " " -f 1` ; else IP_WLAN="---" ; fi ;

# Ausgabe
echo -e "\033[0;37m
\033[0;37m  ~~~~~~~~~~~~
\033[0;37m |           \033[32m-\033[0;37m|  Datum.........: \033[1;32m\033[1;36m$DATUM\033[0;37m
\033[0;37m |           \033[32m-\033[0;37m|  Hostname......: \033[1;33m$HOSTNAME\033[0;37m
\033[0;37m |           \033[32m-\033[0;37m|  Uptime........: $UP1 Tage, $UP2:$UP3 Stunden
\033[0;37m |           \033[32m-\033[0;37m|  Ø Auslastung..: $LOAD1 (1 Min.) | $LOAD2 (5 Min.) | $LOAD3 (15 Min.)
\033[0;37m |            |  Temperaturen..: CPU: $TEMP °C | HDD1: $sdatemp °C | HDD2: $sdbtemp °C
\033[0;37m |         \033[34m[]\033[0;37m |  Speicher......: Gesamt: $DISK1 | Belegt: $DISK2 | Frei: $DISK3
\033[0;37m |         \033[0;32m(c)\033[0;37m|  RAM...........: Gesamt: $RAM1 | Belegt: $RAM2 | Frei: $RAM3 | Cache: $RAM4
\033[0;37m |         \033[34m(\033[31m'\033[34m)\033[0;37m|  Swap..........: Gesamt: $RAM5 | Belegt: $RAM6 | Frei: $RAM7
\033[0;37m | DS216+     |  IP-Adressen...: LAN: \033[1;35m$IP_LAN\033[0;37m | WiFi: \033[1;35m$IP_WLAN\033[0;37m
\033[0;37m  ~~~~~~~~~~~~ 
\033[m"

Nun sieht es so aus:
sshlogin2.jpg
 
Zuletzt bearbeitet:

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.141
Punkte für Reaktionen
1.112
Punkte
314
Ist eine nette Spielerei, die mir durchaus gefällt. Es besteht ja auch noch die Möglichkeit, den PROMPT umzugestalten. Hatte das irgendwann mal probiert, bekomm das aber grad nicht mehr zusammen. Hier gibt’s aber eine gute Seite mit Infos dazu. Vielleicht wär das ja was...

Tommes
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.141
Punkte für Reaktionen
1.112
Punkte
314
Verrückt!
 

blurrrr

Benutzer
Sehr erfahren
Mitglied seit
23. Jan 2012
Beiträge
6.204
Punkte für Reaktionen
1.104
Punkte
248
Aber... warum macht man sowas? :confused: Packt man sich da nicht eher sämtliche Geräte schön in eine Übersicht und hat damit direkt alles im Blick, anstatt nur jedes mal einen Blick erhaschen zu dürfen, wenn man sich via SSH anmeldet? Also von der Langzeitstatistik jetzt mal ganz abgesehen...
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.141
Punkte für Reaktionen
1.112
Punkte
314

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.208
Punkte für Reaktionen
63
Punkte
114
Und "wo" muss ich da "was" einbauen damit das klappt?
Sorry ich kapiers nicht, direkt im /etc/profile geht das nicht.../etc/motd gibts nicht...???
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.541
Punkte für Reaktionen
1.385
Punkte
234
Es besteht ja auch noch die Möglichkeit, den PROMPT umzugestalten
Wie man auf dem Screenshot sieht, habe ich das auch gemacht, aber bin hier nicht weiter darauf eingegangen.

Beispiel:
Rich (BBCode):
PS1="\e[1;32m\u@\e[m\e[1;35m\h\e[m \e[1;34m\w \$\e[m "
Einfach an das Ende von der .profile anhängen.

Ist eine nette Spielerei
Es ist zwar eine Spielerei, man wird auch nie jedesmal auf die Werte schauen, aber so sieht man sofort "wo" man ist. Ich habe auf den verschiedenen Geräten (DS1, DS2, Raspberry, Webserver, usw.) andere Ausgaben und ich sehe sofort wo ich bin. Mir ist es schon mal passiert, dass ich durch mehrere offene Fenster einen Befehl im falschen Fenster abgesetzt habe. Es ging zwar noch mal gut, aber einen Schrecken habe ich schon bekommen.

Andere Variante ist es sich mit der Datei /etc/motd eine starre Loginmeldung zu schaffen.

Beispiel:
Rich (BBCode):
  #########################################
  #                                       #
  #  ###   ###      ###    #  ###         #
  #  #  # #            #  ## #       #    #
  #  #  #  ##  ####   #    # ###   #####  #
  #  #  #    #       #     # #  #    #    #
  #  ###  ###       ####   #  ##          #
  #                                       #
  #########################################

So sieht es mit der Modifizierung der /etc/motd aus:
sshlogin3.jpg
 
Zuletzt bearbeitet:

blurrrr

Benutzer
Sehr erfahren
Mitglied seit
23. Jan 2012
Beiträge
6.204
Punkte für Reaktionen
1.104
Punkte
248
Da simma wieder im Reich der Ascii-Bildchen... Das ist so... 1990... :p:D ("apt-get moo"? :cool:)
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.541
Punkte für Reaktionen
1.385
Punkte
234
Und "wo" muss ich da "was" einbauen damit das klappt?
Das Script kannst du ablegen wo du willst.
Den Befehl zum Aufruf des Scriptes legst du in der /root/.profile ab (ans Ende).
Das Gleiche gilt auch für die Änderung vom Prompt.

/etc/motd gibts nicht...?
Falls du stattdessen was mit der motd machen willst, einfach unter /etc eine leere Datei namens motd erstellen.
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.101
Punkte für Reaktionen
253
Punkte
129
Danke, werde mich da wohl auch mal etwas spielen :)
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.208
Punkte für Reaktionen
63
Punkte
114
Danke!

Hab jetzt einfach am Ende der /etc/root ein sh /etc/login
In /etc/log das Script etwas verändert abgelegt.

Funktioniert!
 

cp389

Benutzer
Mitglied seit
07. Jan 2014
Beiträge
532
Punkte für Reaktionen
5
Punkte
44
Das “wo” war für mich auch der Hauptgrund, warum ich am Prompt gedreht hab. Bei älteren DSM-Versionen stand da ja immer nur DS>. Das war auf Dauer schon etwas verwirrend, wenn man irgendwas in XPEnology testet und dann auf dem Produktivsystem umsetzen will.

MOTD ist für mich auch nur eine Spielerei - aber eine recht nette. Der Terminal-Alltag ist manchmal schon etwas trist, da kann ja etwas Farbe nicht schaden.

Apropos 90er: vor kurzem wurden in der Updatebeschreibung von WhatsApp animierte GIFs angeteasert. Da hab ich vor Lachen fast auf dem Boden gelegen. Aber für die Kids von heute war das wohl etwas Neues :D
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.141
Punkte für Reaktionen
1.112
Punkte
314
Da simma wieder im Reich der Ascii-Bildchen... Das ist so... 1990... :p:D
Back to the roots würde ich da sagen. In den 90‘ern habe ich angefangen mit DOS 5.0 und Windows 3.1... daher fühle ich mich immer irgendwie heimisch, wenn ich hin und wieder mal einen Terminal vor mir habe... auch wenn es hier halt kein DOS sondern Linux ist.

Ich finds jedenfalls toll, das es hier für sowas immer noch Leute gibt, die daran Spaß haben.

Tommes
 

blurrrr

Benutzer
Sehr erfahren
Mitglied seit
23. Jan 2012
Beiträge
6.204
Punkte für Reaktionen
1.104
Punkte
248
Naja, simma doch ma ehrlich... wer ist schon nicht für Spielkram zu haben :eek: Wären wir nicht für Spielkram zu haben, wären wir wohl nicht hier... ;)

Was allerdings die Angabe von momentanen Wertigkeiten angeht (wie Auslastung von CPU, RAM, usw.) finde ich eine Statistik, welche auch über einen längeren Zeitraum gehen "kann" doch schon wesentlich sinnvoller, da man so auch entsprechende Rückschlüsse ziehen kann und sich nicht ständig via SSH verbinden muss, nur um einen aktuellen Stand der Dinge zu erhaschen. Gibt halt ein paar wirklich "einfache" Vertreter, die das dann einfach via SNMP erledigen (Observium oder der Fork LibreNMS z.B.) und dazu hat man auch direkt noch ein paar Dinge mehr im Blick (HDD-Auslastung z.B.) und kann sich bei entsprechend gesetzten Alert-Regel noch über bestimmtes Verhalten via z.B. Mail (oder auch andere Kanäle) informieren lassen (z.B. CPU-Auslastung über 85%, Temperatur über 50°C, o.ä.).

Naja, aber eins kann man mit definitiver Sicherheit sagen: früher hat der Kram wenigstens "funktioniert". Bei dem was so manche Vereine heutzutage abliefern... die hätte man mit Fackeln und Forken aus dem Dorf gejagt :eek: Da ist Whatsapp ja mal was ganz neues eingefallen, Respekt! :D
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.141
Punkte für Reaktionen
1.112
Punkte
314
Irgendwie schwingt in deinen Postings ein wenig die Spaßbtemse mit. (Bitte nicht als Maßregelung verstehen, ich mach nur Spaß)

Über Sinn und Unsinn mag man sicherlich streiten können, aber es muss nicht immer alles einen tieferen Sinn haben. Hier zählt für mich allein der Spaßfaktor und mein Spieltrieb das auszuprobieren. Man braucht auch keinen Sportauspuff, dicke Aluschlappen und so‘n Zeugs... aber der eine pimpt halt sein Auto, der andere seine Synology DiskStation. Wie ich immer sage: mit einem Maximum an Ressourcen, einen Minimum an Nutzen erzielen. Man nennt das auch Hobby.

Tommes
 

blurrrr

Benutzer
Sehr erfahren
Mitglied seit
23. Jan 2012
Beiträge
6.204
Punkte für Reaktionen
1.104
Punkte
248
Ich bin der letzte der die Spassbremse zieht :p Nicht umsonst gab's das "apt-get moo" ;)

Alternativ natürlich noch (sofern unterstützt)

aptitude moo
aptitude -v moo
aptitude -vv moo
aptitude -vvv moo
aptitude -vvvv moo
aptitude -vvvvv moo
aptitude -vvvvvv moo

Ich mein halt nur, dass wenn es um konkrete "Werte" geht (wie Auslastungen, etc.), dass es dann mitunter mehr Sinn macht, da auf eine langfristige Statistik zu setzen, nix weiter. Bei irgendwelche Farbspielchen, die Änderung der MOTD oder sonstigem sag ich ja garnix :p
 
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