Üdvözlet!
Egy érdekes kérdéssel/kéréssel fordulok most a nagyérdeműhöz.
Ugyebár mikor bejelentkezünk egy Ubuntu alapú szerverre SSH-n keresztül akkor egy rakat hasznos információt ír ki nekünk a szerver (MOTD, message of the day). Ez nagyon hasznos tud lenni.
Én ugyan ezt szeretném kiíratni Debian 7 alatt is hogyha bejelentkezek távolról (az alap szöveg ugyanis nem éppen informatív csupán a verzió és az utolsó bejelentkezés időpontja).
Ubuntuban elég bonyolultan oldják meg a dolgot, remélem Debianon van valamilyen egyszerűbb megoldás is (amolyan egyszerű tárolóból, vagy csomagból telepíthető kis huncutság) :)
Körülbelül azt szeretném elérni hogy azt, írja ki amit Ubuntun is kiír...
http://kepfeltoltes.hu/140102/ubuntu_www.kepfeltoltes.hu_.png
(előre is) hálás köszönet!
Ui: kézzel meglehetne oldani hogy minden induláskor beírjon valamit a /etc/motd fájlba, de nekem dinamikusan frissülő infók kellenének.
- 7770 megtekintés
Hozzászólások
Saját script meghívása a .profile vagy .bash_profile-ból?
- A hozzászóláshoz be kell jelentkezni
Ha mindenképp ilyet szeretnél készíteni, akkor elvileg lehetséges, egy példa: http://parkersamp.com/2010/10/howto-creating-a-dynamic-motd-in-linux/
Szvsz, biztonsági szempontból azonban nem szokták javasolni, hogy a rendszer induláskor a kelleténél többet eláruljon magáról.
Szóval, ha már debian, akkor maradjon csöndben :)
--
Joe
- A hozzászóláshoz be kell jelentkezni
Ezekete végülis nem induláskor írja ki hanem bejelentkezéskor, ha meg már valaki betudott a nevemben jelentkezni akkor meg már mind1, nincs biztonság.
----
Kipróbáltam azt amit linkeltél, viszonylag elfogadható megoldás de valahogy még mindig nem az ami nekem kéne
+++++++++++++++++: System Data :+++++++++++++++++++
+ Hostname = debian
+ Global Address = ******
+ Local Address1 = ******
+ Local Address2 = ******
+ Ver info = Linux #1 Debian 3.2.51-1
+ Kernel = 3.2.0-4-486
+ Uptime = 15:00:50 up 0 min, 1 user, load average: 1,27, 0,30, 0,10
+ CPU =
+ Tasks =
+ Mem = Mem: 1518 173 1344 0
+ Memory = 1554780 kB
++++++++++++++++++: User Data :++++++++++++++++++++
+ Username = ******
+ Privlages = Regular User
+ Sessions = 1 of Unlimited MAX
+ Processes = 2 of MAX
+++++++++++++: Helpful Information :+++++++++++++++
+ Date = 2014. jan. 4., szombat, 15.00.50 CET
+ Lastlog = ****** pts/0 ****** szo jan 4 15:00:49 +0100 2014
+++++++++++++++++++++++++++++++++++++++++++++++++++
- A hozzászóláshoz be kell jelentkezni
Hát módosítsd a scriptet, hogy azt írja ki, amit akarsz?
- A hozzászóláshoz be kell jelentkezni
Már így is sokmindent módosítottam rajta, de valahogy amemória terheltség (mennyi memo van használatban mennyiből) és a CPU terheltség (kb mint a memo) sehogy sem akar összejönni.
A top-ból próbálgattam infót kiszedni grep-el, de sajna az egy változó értéket ad vissza, így mikor bejelentkezek csak malmozik míg nem nyomok egy ctrl+c -t
- A hozzászóláshoz be kell jelentkezni
memora vmstat mondjuk, cpu terheltségnél szerintem sokkal érdekesebb a load, a topot meg probáld
top -b -n 1
ként futtatni, az segít a kontrolcén, imho.
- A hozzászóláshoz be kell jelentkezni
Köszi a tippet, így már valamivel jobb!
Most már csak azt kéne kiokoskodni hogy hogyan tudom azt beállítani hogy csak az én fehasználó nevemnél (cstommy) jöjjenek elő ezek az infok
Ezt próbáltam:
UNAME=`whoami`
if [$UNAME != 'cstommy']; then
echo date
else
echo -e "
#azok amiket ki kell írni :)
"
fi
Ez egy olyan problémát ad vissza hogy:
sor: 28: [cstommy: parancs nem található
Shell proghoz nem nagyon értek, de c-ben, php-ben ez fix hogy működne
- A hozzászóláshoz be kell jelentkezni
' helyett " közé a cstommy-t:
if [ `whoami` != "SzBlackY" ]; then
echo "Nem SzBlackY vagy"
fi
A load/memó infó a procfs-ben is ott van (pl. /proc/loadavg), a top pipeolás eléggé overkill.
BlackY
- A hozzászóláshoz be kell jelentkezni
+1, fa meg erdő.
- A hozzászóláshoz be kell jelentkezni
Köszönöm így már működik :)
Erre azért volt szükség, hogy csak akkor jelenítse meg az infókat ha egy olyan user lép be akinek jelent is valami.
Még esetleg annyi kéne hogy a lastlog-ból a felhasználó nevet ne írja ki, csak azt hogy milyen porton, honnan, mikor
- A hozzászóláshoz be kell jelentkezni
Valahogy így megoldottam, de ez kicsit amolyan favágó módszer:
lastlog | grep cstommy | cut -c 15-
- A hozzászóláshoz be kell jelentkezni
Talán egy fokkal jobb akkor, ha mondjuk valamilyen csoporthoz kötöd. (Pl wheel).
Ezt a lastlogot kicsit fejtsd ki, plz.
- A hozzászóláshoz be kell jelentkezni
Ugye a lastlog | grep cstommy
ezt adja vissza: cstommy pts/0 ******** v jan 5 14:30:27 +0100 2014
Nekem meg a felhasználó név ebből nem kell (meg mögötte az a rakat space sem) ezért valahogy lekéne vágni az elejét, addig hogy milyen porton jelentkezett be (pl pts/0, vagy tty2). Ha van rá lehetőség akkor az ip meg az előtte-utánna lévő adatok elöl-mögül is kiszeretném venni a spacet.
Az (szinte) biztos, hogy a cut kell hozzá csak valahogy a paraméterezésével nem vagyok megelégedve :)
De már ígyis elértem azt amit akartam :D
- A hozzászóláshoz be kell jelentkezni
Erre lastlog helyett who. Konkrétan javallanám a
who -m
megoldást. Ha nem tartasz igényt a felhasználó nevére, akkor
who -m|tr -s ' '|cut -d ' ' -f 2-
A spaceezést még mindig nem teljesen értem, ha az a bajod, hogy néhol több mint egy van, akkor
|tr -s ' '
, ha meg meg akarsz tőlük szabadulni, akkor
|tr -d ' '
- A hozzászóláshoz be kell jelentkezni
Köszönöm a választ.
Igazából tényleg jobb a who :)
A spaceezést meg pontosan úgy képzeltem el mint ahogy írtad a tr -s
-el
Egyébként így utólag az jutott eszembe hogy azt hogyan tudnám beleírni hogy hány frissíthető csomag van és menniy biztonsági updatet (X packages can be updated. Y updates are security updates.) lehet telepíteni.
Illetve azt hogy nincs (vagy van, és mennyi) új emailem
- A hozzászóláshoz be kell jelentkezni
Azt nem értem, hogy ugye van a motd, ami arra való, hogy mindenkinek megmutassuk, meg vannak userenként az indítási scriptek, amik az adott usernek szólnak csak.
Ha csak saját magadnak íratnád ki az infókat, akkor miért a motd-be pakolod, miért nem pl. a ~/.profile, vagy ~/.bashrc fájlba?
Így csak neked írná ki, és egy rendszerfrissítés nem törli le a fenébe, mint ahogy az motd-t fogja majd :-)
- A hozzászóláshoz be kell jelentkezni
Neked nem is motd kell, hanem egy jól összerázott conky.
- A hozzászóláshoz be kell jelentkezni
Jó lenne az, de nekem nem grafikus felületre kell :)
- A hozzászóláshoz be kell jelentkezni
apt-get install landscape-common
- A hozzászóláshoz be kell jelentkezni
Na ezt akartam én is de az apt-get azt mondja hogy ilyen csomag nem létezik...
Kell valami spéci tároló hozzá?
- A hozzászóláshoz be kell jelentkezni
Ubuntu specifikus a megoldás, de ha a függőségeket kielégíti a debian, akkor sztem. megy debian alatt. is.
- A hozzászóláshoz be kell jelentkezni
Szereztem egy landscape-common_12.04.3-0ubuntu1_i386.deb nevű csomagot, feltettem (a függőségeit is), most már csak azt nem tudom hogy ezután mit kéne csinálnom, mert semmit nem infot nem ír ki most se bejelentkezés után :(
- A hozzászóláshoz be kell jelentkezni
Most ránéztem az ubuntus szervereimre, nekem semmi ilyesmit nem csinál. Stock telepítés, semmi olyasmi nem lett átállítva rajta, aminek ehhez köze lehet:
login as: root
root@***'s password:
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.2.0-23-virtual x86_64)
* Documentation: https://help.ubuntu.com/
You have new mail.
Last login: Thu Jan 2 20:29:55 2014 from ***
root@***:~#
- A hozzászóláshoz be kell jelentkezni
Ha jól emlékszem, az aktuális load függvénye, hogy kiírja-e ezeket az infókat vagy sem.
- A hozzászóláshoz be kell jelentkezni
https://wiki.archlinux.org/index.php/Motd
apropos motd
man pam_motd
Debian-on /etc/pam.d/login -ban:
# Prints the message of the day upon succesful login.
# (Replaces the `MOTD_FILE' option in login.defs)
# This includes a dynamically generated part from /run/motd.dynamic
# and a static (admin-editable) part from /etc/motd.
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so
A /etc/init.d/motd szkript update-eli a /run/motd.dynamic -t, alapesetben uname tartalmával (ld. do_start függvény).
Vagy létrehozhatsz egy szkriptet a /etc/update-motd.d könyvtár alá.
- A hozzászóláshoz be kell jelentkezni
A script létrehozása az /etc/update-motd.d alá érdekelne, csak nem tudom hogy mit kéne beleírni, mivel a scriptek világában nem nagyon vagyok otthon :(
- A hozzászóláshoz be kell jelentkezni
napi tagline-t linuxra!
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Jujj de rég használtam dos alatt...
- A hozzászóláshoz be kell jelentkezni
gondoltam ra hogy portolom, de nincs meg az eredeti, kiindulasi alapnak meg kellene:\
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Talán elő tudom vakarni valahonnan...
- A hozzászóláshoz be kell jelentkezni
Egy vagy ket eve kerestem, akkor nem volt fennt neten (vagy a google nem talalta). Azota lett: http://www.geocities.ws/paleosoft/tglwin/index.htm
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Sub
- A hozzászóláshoz be kell jelentkezni
Köszönöm a sok segítséget!
Akkor összefoglalom hogy mi lett a végeredményem:
A megoldás ez alapján a cikk alapján indult el: http://parkersamp.com/2010/10/howto-creating-a-dynamic-motd-in-linux/
Kicsit alakítottunk rajta és ez lett a script:
#!/bin/bash
UNAME=`whoami`
PROCCOUNT=`ps -l | wc -l`
PROCCOUNT=`expr $PROCCOUNT - 4`
IP0=`wget -q checkip.dyndns.org -O - | grep -o "[0-9|.]*"`
IP1=`ifconfig eth0 | grep -o "inet addr:[0-9.]*" | cut -d : -f2`
IP2=`ifconfig eth1 | grep -o "inet addr:[0-9.]*" | cut -d : -f2`
if [[ $(groups) == *irc* ]]; then
ENDPROC=`cat /etc/security/limits.conf | grep "@irc" | grep nproc | awk {'print $4'}`
ENDSESSION=`cat /etc/security/limits.conf | grep "@irc" | grep maxlogins | awk {'print $4'}`
PRIVLAGED="IRC Account"
else
ENDPROC=`cat /etc/security/limits.conf | grep "*" | grep nproc | awk {'print $4'}`
ENDSESSION="Unlimited"
PRIVLAGED="Regular User"
fi
if [ `whoami` != "atefelhasznaloneved" ]; then
echo "Üdv $UNAME"
else
echo -e "
+++++++++++++++++: System Data :+++++++++++++++++++
+ Hostname : `hostname`
+ Global Address : $IP0
+ Local Address1 : $IP1
+ Local Address2 : $IP2
+ Ver info : `uname -s -v`
+ Kernel : `uname -r`
+ Uptime : `uptime | sed 's/.*up ([^,]*), .*/1/'`
+++++++++++++++++: CPU & Mem :+++++++++++++++++++
+ CPU model name : `cat /proc/cpuinfo | grep \"model name\" | cut -c 13-`
+ Top :
`top -b -n 1 | grep top`
+ Memory : `cat /proc/meminfo | grep MemTotal | awk {'print $2/1024'}` MB
`vmstat`
++++++++++++++++++: User Data :++++++++++++++++++++
+ Username : $UNAME
+ Privlages : $PRIVLAGED
+ Sessions : `who | grep $USER | wc -l` of $ENDSESSION MAX
+ Processes : $PROCCOUNT of $ENDPROC MAX
+++++++++++++: Helpful Information :+++++++++++++++
+ Date : `date`
+ Lastlog : `who -m|tr -s ' '|cut -d ' ' -f 2-`
+++++++++++++++++++++++++++++++++++++++++++++++++++
"
fi
A scriptete a /usr/local/bin/dynmotd
-ba kell tenni, futtatási jogot kell rá adni, majd az elérését bele kell írni a /etc/profile
-fájl végére.
Ez lesz a végeredményünk:
+++++++++++++++++: System Data :+++++++++++++++++++
+ Hostname : debian
+ Global Address : ************
+ Local Address1 : ************
+ Local Address2 : ************
+ Ver info : Linux #1 Debian 3.2.51-1
+ Kernel : 3.2.0-4-486
+ Uptime : 17:22:12 up 17 min, 3 users, load average: 0,00, 0,01, 0,05
+++++++++++++++++: CPU & Mem :+++++++++++++++++++
+ CPU model name : ************
+ Top :
top - 17:22:12 up 17 min, 3 users, load average: 0,00, 0,01, 0,05
Tasks: 99 total, 1 running, 98 sleeping, 0 stopped, 0 zombie
3940 ***** 20 0 4524 1264 980 R 0,0 0,1 0:00.00 top
+ Memory : 1518.34 MB
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 1306968 29040 109176 0 0 134 8 26 90 1 0 96 4
++++++++++++++++++: User Data :++++++++++++++++++++
+ Username : *******
+ Privlages : Regular User
+ Sessions : 3 of Unlimited MAX
+ Processes : 2 of MAX
+++++++++++++: Helpful Information :+++++++++++++++
+ Date : 2014. jan. 5., vasárnap, 17.22.12 CET
+ Lastlog : pts/2 2014-01-05 17:22 (**********)
+++++++++++++++++++++++++++++++++++++++++++++++++++
A csillaggal megjelölt helyekre képzeljünk el IP címeket, illetve felhasználó neveket :)
Az közepe felé található if [ `whoami` !=
... kezdetű sor pedig arra vonatkozik, hogy ez az üzenet kinek jelenjen meg (én csak hozzáértő felhasználó számára engedélyezem... vagyis magamnak :))
Köszönöm a sok segítséget :D
- A hozzászóláshoz be kell jelentkezni
"Az közepe felé található if [ `whoami` !=... kezdetű sor pedig arra vonatkozik, hogy ez az üzenet kinek jelenjen meg (én csak hozzáértő felhasználó számára engedélyezem... vagyis magamnak :))"
Erre két szebb megoldás is eszembe jutott.
1: csinálsz egy csoportot, akiknek megjelenik az MOTD, és berakod magad a csoportba, a feltétel a csoporttagságot vizsgálja.
2: /etc alatt valahol csinálsz egy fájlt, amibe listázva beírod a felhasználókat, a script egy egyszerű greppel (nem tudom van-e ennél egyszerűbb megoldás) vizsgálja, az adott user a lista tagja-e. Ez gyakorlatilag az 1-es megoldás butított változata, de még mindig szebb, mint beégetni a felhasználó nevét a scriptbe.
- A hozzászóláshoz be kell jelentkezni
Igazad van, szebb, jobb, logikusabb az amiket te írtál, de nálam nem lesz több olyan felhasználó akinek szüksége van ezekre az infókra.
Őket csak üdvözöljük :)
- A hozzászóláshoz be kell jelentkezni
A PRIVILAGED meg az irc-s cuccnak mi értelme?
- A hozzászóláshoz be kell jelentkezni
Semmi, csak az eredeti scriptben benne volt, nekem meg elfért, de már nekem sincs benne...
(igazávól azt az irc-s részt nem is értem :S)
- A hozzászóláshoz be kell jelentkezni
A script irója az irc usert a rendszerén limitálta a max login számok és futtatható processzek tekintetében, ezért arra vonatkozóan kiszedegette az értékeket, és mást jelenített meg a user data alatt.
- A hozzászóláshoz be kell jelentkezni
Én kivettem ezeket a sajátomból, de itt bent hagyom hátha valakinek szüksége van rá
- A hozzászóláshoz be kell jelentkezni
privilege, privileges, privileged
t
- A hozzászóláshoz be kell jelentkezni
+1
--
A legértékesebb idő a pillanat amelyben élsz.
https://sites.google.com/site/jupiter2005ster/
- A hozzászóláshoz be kell jelentkezni
sub.
Ja, és én is köszönöm, hogy megosztottad.
- A hozzászóláshoz be kell jelentkezni