Как увидеть детали, которые Ubuntu показывает во время входа в систему в любое время?

27

Когда я захожу в свою систему Ubuntu, она показывает мне это сообщение: Как я могу увидеть это в любое время? Я пытался бежать, . .bashrcно это не сработало.

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 
iCyborg
источник
Настолько грустно, что на самом деле не существует стандартной команды, чтобы просто выполнить это, и что методы меняются так часто, что принятый ответ и его замена уже устарели!
nealmcb

Ответы:

16

Вы можете показать в любое время , когда вы хотите это сообщение - м essage о е т он d ау - используя следующую команду в терминале:

cat /etc/motd

или лучше:

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

Если вы хотите видеть это сообщение каждый раз, когда открываете терминал, просто вставьте одну из приведенных выше строк в конец ~/.bashrcфайла (вы можете открыть его с помощью gedit ~/.bashrcкоманды).

/ И т.д. / MOTD файл на Unix-подобные системам, содержит «сообщение дня», используемое для отправки общего сообщения всех пользователей, более эффективно, чем посылать их все сообщения электронной почты.

Подробнее о: http://en.wikipedia.org/wiki/Motd_(Unix)

Связанный: Как обновляется / etc / motd?

Раду Рэдяну
источник
Те же, но более короткие сообщения об ошибках при выгрузке (время от времени содержимое /etc/update-motd.d меняется): для i в /etc/update-motd.d/*; do $ i 2> / dev / null; сделано
luis_js
Вы больше не можете cat /etc/motd, к сожалению, как уже отмечали другие. И это изменилось дважды с тех пор. (Почему нет стандартной команды для этого? Вздох)
nealmcb
32

Похоже, это изменилось. С Ubuntu 16.04 нет, /etc/motdно вы можете cat /var/run/motd.dynamicвместо этого.

Shlublu
источник
1
Мне пришлось использовать этот метод в Ubuntu 14.04.
Дж. Смит
9
Обратите внимание, что /var/run/motd.dynamicэто просто кэшированный статический вывод последнего запуска при входе в систему. Чтобы снова увидеть вывод в реальном времени, вы должны запустить сценарии, которые его генерируют, которые находятся /etc/update-motd.d(на момент написания этой статьи, в Ubuntu 16.04.4 LTS)
Аарон Уоллентайн
По состоянию на Ubuntu 19.04, это сейчасcat /var/run/motd.dynamic.new
Адам Эриксон
7

Ubuntu запускает это при входе в систему:

/usr/bin/landscape-sysinfo

Вы можете просто запустить его через терминал, используя следующую команду:

landscape-sysinfo
отметка
источник
Интересный. Но это только одна часть полного слова.
nealmcb
3

Вы еще не включили режим без звука, как я вижу. Если вы включите вход в режиме без вывода сообщений, ответы в предыдущем решении не будут работать.

Вы можете увидеть motdсообщение в любом из них, /var/run/motd.dynamicи оно /run/motd.dynamicбыло сгенерировано в последний раз, когда пользователь вошел в режим без вывода сообщений . Оба файла указывают на один и тот же индекс, что означает жесткие ссылки.

Информация является статической после входа в систему, если вы не входите в режим без вывода сообщений . Файл не создается, если вы первый пользователь, который вошел в систему и если у вас есть .hushloginфайл. Если у вас есть пользователь, у которого нет .hushloginфайла, вы увидите устаревшее содержимое, когда попытаетесь получить к нему доступ.

Лучший способ, которым я могу придумать, - это создать .hushloginпросто действуя touch ~/.hushlogin.

Отредактируйте ваш .bashrcфайл и добавьте содержимое, как указано @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

Поэтому при каждом запуске . .bashrcвы увидите новое сообщение вместо статического.

Примечание: .bashrcвыполняется для всех интерактивных оболочек без входа в систему, и, следовательно, вы увидите эти сообщения, когда откроете интерактивную оболочку, набрав bash.

randominstanceOfLivingThing
источник
2

Я предполагаю, что это управляется PAM через via /etc/pam.d/loginlook motd(сообщение дня).

Вы можете создать статическую часть этого сообщения с помощью cat /etc/motd. У меня нет той динамической части, которую вы показываете, поэтому я не могу помочь с этим.

enzotib
источник
2

Как уже отмечалось несколько раз, скрипты под тем /etc/update-motd.d, что обеспечивают типичный вывод, отображаемый при входе в систему; см update-motd(5). Но нет необходимости изобретать колесо или создавать его, создавая сценарии самостоятельно. Используйте run-parts(8)вместо этого, который предоставляется только для этой цели:

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

Это то, что pam_motd(8)делает модуль PAM, работая от имени пользователя root, после аутентификации пользователя и непосредственно перед открытием оболочки входа пользователя. Один или несколько сценариев обычно необходимо запускать с правами суперпользователя, поэтому не откладывайте их sudo, иначе вы, скорее всего, увидите ошибки.

RichieD
источник
1

Вы можете запустить landscape-sysinfo для получения системной информации и

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

для получения информации о пакетах.

user401247
источник
очевидно, это работает, только если у вас установлен ландшафт. Это коммерческий (не бесплатный) инструмент (для тех, кто не знает об этом).
aenw
Я получаю: find: ‘/var/lib/apt/lists/partial’: Permission deniedиmktemp: failed to create file via template ‘/var/lib/update-notifier/tmp.XXXXXXXXXX’: Permission denied
nealmcb
1

Похоже, этот вывод генерируется скриптами, расположенными в папке /etc/update-motd.d;
Если вы зайдете в этот каталог, вы можете запустить отдельные скрипты для разных битов информации; или вы можете посмотреть на источник сценариев , чтобы увидеть команды это на самом деле работает , чтобы получить эту информацию, которая , кажется, изменения от версии к версии ( с использованием catили текстового редактора, например nano, pico, emacs, vimи т.д.).

Пример:

$ 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*

Эта информация актуальна на момент написания этой статьи и Ubuntu 16.04.4 LTS.

Аарон Уоллентин
источник
1

Ответ Аарона Уоллентина привел меня к моему решению. «Похоже, этот вывод генерируется сценариями, расположенными в папке /etc/update-motd.d. Если вы зайдете в этот каталог, вы можете запустить отдельные сценарии для разных битов информации».

/etc/update-motd.dЯ полагаю, что каждый из сценариев в папке запускается в порядке номера, указанного в их именах при входе в систему. В качестве примера мои были:

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

Вы можете запустить каждый отдельно для отображения своих данных. например:

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

Вы можете запустить их все вместе, как это:

sudo /etc/update-motd.d/10-header ; sudo /etc/update-motd.d/30-sysinfo ; ... использование ;символа (точка с запятой) для связи команд.

но кто хочет напечатать все это, я превратил эту длинную связанную командную строку в сценарий оболочки.

Перейдите в каталог bin:

cd /bin

создать файл, я назвал мой "clr", потому что я использую его, чтобы очистить свой экран тоже, назовите свой как угодно:

sudo touch clr

Сделайте ваш скрипт исполняемым:

sudo chmod +x clr

Я использовал nano для редактирования моего, используйте ваш любимый:

sudo nano clr

Затем добавьте эту длинную командную строку из ранее в ваш файл, не забудьте использовать ваши файлы motd, а не мои, так как они будут другими:

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

Сохраните его и запускайте каждый раз, чтобы увидеть, что ваш motd недавно обновлен, обратите внимание, что я добавил его clear ;в мой, поэтому при вводе clrон очистит мой экран и покажет обновленную статистику.

Я думаю, что это все, что я получил, надеюсь, это поможет кому-то.

Райан Во
источник