Sida 1 av 1

discus + motd

Postat: 21 jun 2012, 06:07
av AyuCrazy
Vid SSH login till min server har jag ändrat MOTD till att visa lite mer än normalt, jag använder just nu idag detta extra som visas.

Kod: Markera allt

#!/bin/sh
echo
df -h --type=ext4
echo
vnstat -m
echo
Jag skulle dock vilja använda discus istället för df , men hur jag än försöker så får jag inte upp något när jag använder discus i motd.
Tacksam för hjälp för att få det fungera :kram:

Re: discus + motd

Postat: 21 jun 2012, 15:12
av David Andersson
AyuCrazy skrev: Jag skulle dock vilja använda discus istället för df , men hur jag än försöker så får jag inte upp något när jag använder discus i motd.
Inte nånting? Inte ens nåt felmeddelande? Syns fortfarande vnstat?

Körs motd-scriptet vid boot eller login? (Syns datum från vnstat?)

Ursäkta en dum fråga bara, du har väl inte samma flaggor på discus som på df?

Re: discus + motd

Postat: 21 jun 2012, 15:35
av Kirill
Annars kan du ju köra detta:

Kod: Markera allt

#!/bin/bash
CPUTIME=`ps -eo pcpu | awk 'NR>1' | awk '{tot=tot+$1} END {print tot}'`
CPUCORES=`cat /proc/cpuinfo | grep -c processor`

echo "
System Summary (collected `date`)

 - CPU Usage (average)       = `echo $CPUTIME / $CPUCORES | bc`%
 - CPU Cores		     = `echo $CPUCORES`
 - Memory free (real)        = `free -m | head -n 2 | tail -n 1 | awk {'print $4'}` Mb
 - Memory free (cache)       = `free -m | head -n 3 | tail -n 1 | awk {'print $3'}` Mb
 - Swap in use               = `free -m | tail -n 1 | awk {'print $3'}` Mb
 - System Uptime             =`uptime`
 - Public IP                 = `dig +short myip.opendns.com @resolver1.opendns.com`
 - Disk Space Used on /      = `df -H / | awk '{ a = $3 } END { print a }'` of `df -H / | awk '{ a = $2 } END { print a }'` (Available `df -H / | awk '{ a = $4 } END { print a }'`)
 - Disk Space Used on FTP1   = `df -H /media/FTP1 | awk '{ a = $3 } END { print a }'` of `df -H /media/FTP1 | awk '{ a = $2 } END { print a }'` (Available `df -H /media/FTP1 | awk '{ a = $4 } END { print a }'`)
 - Disk Space Used on FTP2   = `df -H /media/FTP2 | awk '{ a = $3 } END { print a }'` of `df -H /media/FTP2 | awk '{ a = $2 } END { print a }'` (Available `df -H /media/FTP2 | awk '{ a = $4 } END { print a }'`)
 - Disk Space Used on FTP2   = `df -H /media/FTP3 | awk '{ a = $3 } END { print a }'` of `df -H /media/FTP3 | awk '{ a = $2 } END { print a }'` (Available `df -H /media/FTP3 | awk '{ a = $4 } END { print a }'`)

" > /etc/motd

Re: discus + motd

Postat: 21 jun 2012, 20:22
av AyuCrazy
David Andersson skrev:
AyuCrazy skrev: Jag skulle dock vilja använda discus istället för df , men hur jag än försöker så får jag inte upp något när jag använder discus i motd.
Inte nånting? Inte ens nåt felmeddelande? Syns fortfarande vnstat?

Körs motd-scriptet vid boot eller login? (Syns datum från vnstat?)

Ursäkta en dum fråga bara, du har väl inte samma flaggor på discus som på df?
Jag kör inte samma som df såklart ;) , har testat med olika flaggor utan resultat , övrigt visas men inget output från själva discus, blir bara en extra tom rad
Så den kör MOTD som det ska vid login, bara att det inte går att få någon output från discus, blir en tom rad istället.

@Kirill ; ditt script ser lite väll avancerat ut, hehe

Re: discus + motd

Postat: 21 jun 2012, 21:04
av Kirill
AyuCrazy skrev: @Kirill ; ditt script ser lite väll avancerat ut, hehe
Avancerat och avancerat... :) Den ger dig en massa trevlig info om ditt system, hade dock ett annat som läste loggar om intrångsförsök, men det försvann.

Har kört med det själv, men ska utveckla det ännu mera. :D

Re: discus + motd

Postat: 21 jun 2012, 22:09
av David Andersson
AyuCrazy skrev: övrigt visas men inget output från själva discus, blir bara en extra tom rad
Inte ens om du kör discus i en terminal när du väl är inloggad?
AyuCrazy skrev: @Kirill ; ditt script ser lite väll avancerat ut, hehe
Vänta bara!

Man kan göra sin egen discus med df och awk:

Kod: Markera allt

df -m -xtmpfs -xdebugfs -xdevtmpfs | awk '{gsub("%","")} NR==1 {printf "\033[34m%-20s %10s %10s %10s%%  %-10s\033[0m\n",$6,$2,$4,$5,"Graph"} NR>1 {bar=($5+5)/10; printf "%-20s %10s %10s %10s%% [%-10s]\n",$6,$2,$4,$5,substr("=======***",0,bar)}'
Den formatterar om output från df till ungefär som discus. Tja, ser inte riktigt så avancerat ut som Kirills än. Att lägga till fler färger och kolumner lämnas som övning till läsaren. Sen ska du se det ser avancerat ut!

Re: discus + motd

Postat: 22 jun 2012, 05:53
av AyuCrazy
Både discus & pydf som jag också testat fungerar direkt i terminalen, men dom ger inget output i motd, bara en extra tom rad.
Din egna "discus" (df) fungerar utan problem :) , och ser väldigt trevlig ut :kram:

Skulle dock vara kul att klura ut varför discus & pydf inte klarar att ge output till motd, kanske går om man bara visste hur ???

Re: discus + motd

Postat: 22 jun 2012, 18:43
av David Andersson
AyuCrazy skrev: Skulle dock vara kul att klura ut varför discus & pydf inte klarar att ge output till motd, kanske går om man bara visste hur ???
Vet inte, men tillåt mej spekulera. Kan det vara så att modt-scriptet körs vid boot och sparar output i en textfil, som sedan visas vid login. I så fall, kolla om det finns nån logg där man kan se om nåt gick fel med motd vid boot? Om inte, omge ditt script (eller bara discus) med en redirect som loggar stderr till /tmp/nånting för att se om nåt går fel.

Nu vet jag. Tillåt mej komma med ett definitivt svar. Stderr från script i /etc/update-motd.d/ visas inte för användaren. Discus felar med följande meddelande

Kod: Markera allt

Traceback (most recent call last):
  File "/usr/bin/discus", line 489, in <module>
    execfile(os.environ['HOME'] + "/.discusrc")
  File "/usr/lib/python2.6/UserDict.py", line 22, in __getitem__
    raise KeyError(key)
KeyError: 'HOME'
När motd körs har ännu inte HOME satts och felmeddelanden syns inte. Om vi antar att discus egentligen inte behöver HOME så kan man sätta den tillfälligt

Kod: Markera allt

HOME=/ discus
Om du gör så i scriptet ska det funka. Fundera på säkerhetsaspekten av denna workaround. Jag tror den är okej.

Re: discus + motd

Postat: 22 jun 2012, 18:58
av AyuCrazy
Vissa delar av motd skapas var 10:e minut så vitt jag vet, men vissa delar, tex det jag lagt till manuellt skapas när man loggar in.

https://wiki.ubuntu.com/UpdateMotd