Come vedere i dettagli che Ubuntu mostra in qualsiasi momento al momento del login?


27

Quando accedo al mio sistema Ubuntu, questo messaggio mi mostra questo messaggio, come posso vederlo in qualsiasi momento? Ho provato a correre . .bashrcma non ha funzionato.

Welcome to Ubuntu 12.10 LTS (GNU/Linux 3.2.0-24-virtual x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Sat Jul 13 06:16:35 UTC 2013

  System load:  0.55              Processes:           96
  Usage of /:   8.1% of 68.74GB   Users logged in:     0
  Memory usage: 55%               IP address for eth0: 198.xx.xxx.xxx
  Swap usage:   0%                IP address for eth1: xxx.1x0.xx.xxx

  => There is 1 zombie process.

  Graph this data and manage this system at https://landscape.canonical.com/

223 packages can be updated.
134 updates are security updates.

Last login: Mon Jul  8 17:47:05 2013 

Così triste che in realtà non esiste un comando standard per realizzare solo questo, e che i metodi cambiano così frequentemente che la risposta accettata e la sua sostituzione sono state entrambe obsolete!
nealmcb,

Risposte:


16

È possibile visualizzare in qualsiasi momento quando si desidera questo messaggio - m essaggio o f t ha d ay - utilizzando il comando successivo nel terminale:

cat /etc/motd

o meglio:

for i in /etc/update-motd.d/*; do if [ "$i" != "/etc/update-motd.d/98-fsck-at-reboot" ]; then $i; fi; done

Se vuoi vedere questo messaggio ogni volta che apri un terminale, inserisci una delle righe sopra alla fine del ~/.bashrcfile (puoi aprirlo con il gedit ~/.bashrccomando).

Il file / etc / motd è un file su Unix-like sistemi che contiene un "messaggio del giorno", utilizzato per inviare un messaggio comune a tutti gli utenti, in modo più efficiente che l'invio di tutti loro un messaggio di posta elettronica.

Maggiori informazioni su: http://en.wikipedia.org/wiki/Motd_(Unix)

Correlati: come viene aggiornato / etc / motd?


Lo stesso, ma messaggi di errore di scarico più brevi (come di volta in volta i contenuti per /etc/update-motd.d cambiano): per i in /etc/update-motd.d/*; fai $ i 2> / dev / null; fatto
luis_js il

cat /etc/motdPurtroppo non è più possibile , come altri hanno notato. E da allora è cambiato due volte. (Perché non esiste un comando standard per farlo?
Sigh

32

Sembra che sia cambiato. Con Ubuntu 16.04 non c'è /etc/motdma puoi cat /var/run/motd.dynamicinvece.


1
Ho dovuto usare questo metodo in Ubuntu 14.04.
J Smith,

9
Si noti che /var/run/motd.dynamicè solo un output statico memorizzato nella cache dell'ultima volta che è stato eseguito, al momento dell'accesso. Per vedere effettivamente di nuovo l'output dal vivo, devi eseguire gli script che lo generano, che si trovano /etc/update-motd.d(al momento della stesura di questo, su Ubuntu 16.04.4 LTS)
Aaron Wallentine,

A partire da Ubuntu 19.04, è oracat /var/run/motd.dynamic.new
Adam Erickson

7

Ubuntu esegue questo al login:

/usr/bin/landscape-sysinfo

Puoi semplicemente eseguirlo attraverso il terminale usando il seguente comando:

landscape-sysinfo

Interessante. Ma questa è solo una parte dell'intero motd.
nealmcb,

3

Come ho visto, non hai ancora abilitato la modalità silenziosa . Se si abilita l'accesso in modalità silenziosa, le risposte nella soluzione precedente non funzioneranno.

Puoi vedere il motdmessaggio in entrambi /var/run/motd.dynamice /run/motd.dynamicche è stato generato l'ultima volta che un utente ha effettuato l'accesso in modalità non silenziosa . Entrambi i file puntano allo stesso inode, il che significa che sono collegamenti reali.

Le informazioni sono statiche una volta effettuato l'accesso se non si accede in modalità silenziosa . Il file non viene generato se sei il primo utente che accede al sistema e se hai un .hushloginfile. Se hai un utente che non aveva il .hushloginfile, vedrai i contenuti non aggiornati quando proverai ad accedervi.

Il modo migliore a cui riesco a pensare è creare .hushloginsemplicemente facendo touch ~/.hushlogin.

Modifica il tuo .bashrcfile e aggiungi il contenuto come indicato da @Radu Rădeanu:

for i in /etc/update-motd.d/*; do if [ "$i" != "/etc/update-motd.d/98-fsck-at-reboot" ]; then $i; fi; done

Quindi, ogni volta che esegui . .bashrc, vedrai un nuovo messaggio invece del messaggio statico.

Nota: .bashrcviene eseguito per tutte le shell interattive senza accesso e quindi vedrai questi messaggi quando apri una shell interattiva digitando bash.


2

Suppongo che questo sia gestito da PAM, tramite /etc/pam.d/login, cerca motd(messaggio del giorno).

È possibile produrre la parte statica di quel messaggio con cat /etc/motd. Non ho la parte dinamica che mostri, quindi non posso aiutarti.


2

Come notato più volte, gli script sotto /etc/update-motd.dsono ciò che fornisce l'output tipico mostrato al momento dell'accesso; vedi update-motd(5). Ma c'è poco o nessun bisogno di reinventare la ruota, scrivendola insieme da soli. Usa run-parts(8)invece, che è fornito solo per quello scopo:

sudo run-parts /etc/update-motd.d

Questo è ciò che fa il pam_motd(8)modulo PAM, in esecuzione come root, dopo l'autenticazione dell'utente e appena prima di aprire una shell di accesso dell'utente. Uno o più degli script in genere hanno bisogno di essere eseguiti come root, quindi non tralasciare sudo, altrimenti vedrai probabilmente degli errori.


1

È possibile eseguire landscape-sysinfo per informazioni di sistema e

/usr/lib/update-notifier/update-motd-updates-available

per informazioni sui pacchetti.


ovviamente funziona solo se hai installato landscape. È uno strumento commerciale (non gratuito) (per coloro che non lo conoscono).
aenw

Ricevo: find: ‘/var/lib/apt/lists/partial’: Permission deniedemktemp: failed to create file via template ‘/var/lib/update-notifier/tmp.XXXXXXXXXX’: Permission denied
nealmcb il

1

Sembra che l'output sia generato dagli script che si trovano nella cartella /etc/update-motd.d;
Se vai in quella directory, puoi eseguire i singoli script per i diversi bit di informazioni; oppure si può guardare il sorgente degli script per vedere i comandi in realtà è in esecuzione per ottenere tali informazioni, che sembrano cambiare da una release all'altra (utilizzando cat, o un editor di testo, come ad esempio nano, pico, emacs, vim, etc.).

Esempio:

$ ll /etc/update-motd.d/
total 44
drwxrwxr-x   2 root root 4096 Feb 25 21:27 ./
drwxr-xr-x 110 root root 4096 Feb 25 21:33 ../
-rwxr-xr-x   1 root root 1220 Oct 22  2015 00-header*
-rwxr-xr-x   1 root root 1157 Jun 14  2016 10-help-text*
-rwxr-xr-x   1 root root  334 Jan 12 14:30 51-cloudguest*
-rwxr-xr-x   1 root root   97 May 24  2016 90-updates-available*
-rwxr-xr-x   1 root root  299 Jul 22  2016 91-release-upgrade*
-rwxr-xr-x   1 root root  111 May 11  2017 97-overlayroot*
-rwxr-xr-x   1 root root  142 May 24  2016 98-fsck-at-reboot*
-rwxr-xr-x   1 root root  144 May 24  2016 98-reboot-required*
-rwxrwxr-x   1 root root 1204 Jan 15 19:11 99-one-click*

Questa informazione è aggiornata al momento della stesura di questo articolo e di Ubuntu 16.04.4 LTS.


1

La risposta di Aaron Wallentine mi ha portato alla mia soluzione. "Sembra che l'output sia generato dagli script che si trovano nella cartella /etc/update-motd.d. Se vai in quella directory, puoi eseguire i singoli script per i diversi bit di informazioni."

Ciascuno degli script nella cartella viene /etc/update-motd.deseguito, credo, in ordine di numero che hanno nei loro nomi al momento dell'accesso. Ad esempio i miei erano:

10-header 30-sysinfo  32-site  35-motd  98-autoreboot-warn

Puoi eseguirli separatamente per visualizzare i loro dati. per esempio:

cd /etc/update-motd.d
sudo ./10-header  or  sudo ./30-sysinfo**

Potresti farli funzionare tutti insieme in questo modo:

sudo /etc/update-motd.d/10-header ; sudo /etc/update-motd.d/30-sysinfo ; ... usando il ;simbolo (punto e virgola) per collegare i comandi.

ma chi vuole scrivere tutto ciò, ho finito per trasformare quella lunga stringa di comando collegata in uno script di shell.

Passare alla directory bin:

cd /bin

crea un file, ho chiamato il mio "clr" perché lo sto usando anche per cancellare il mio schermo, chiama il tuo qualunque cosa:

sudo touch clr

Rendi eseguibile il tuo script:

sudo chmod +x clr

Ho usato nano per modificare il mio, usa il tuo preferito:

sudo nano clr

Quindi, aggiungi quella lunga stringa di comando precedente al tuo file, ricorda di usare i tuoi file motd, non i miei, poiché saranno diversi:

clear ; sudo /etc/update-motd.d/10-header ; sudo /etc/update-motd.d/30-sysinfo ; sudo /etc/update-motd.d/ ; sudo /etc/update-motd.d/32-site ; sudo /etc/update-motd.d/35-motd ; sudo /etc/update-motd.d/98-autoreboot-warn

Salvalo ed eseguilo ogni volta che vedi il tuo motd appena aggiornato, nota che l'ho aggiunto clear ;al mio, quindi quando scrivo clrcancellerà il mio schermo e mostrerà le statistiche aggiornate.

Penso che sia tutto ciò che ho, spero che aiuti qualcuno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.