No Debian / Ubuntu o motd
está configurado em /etc/pam.d/sshd
:
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so noupdate
o que significa que, após o login bem-sucedido, o sistema executará algo como:
cat /run/motd.dynamic
if [[ -f /etc/motd ]]; then cat /etc/motd; fi
onde /etc/motd
é a parte estática (somente impressa, não originada).
Debian 9 / Ubuntu 16.04 :
Para gerar a parte dinâmica run-parts
é usado para o diretório /etc/update-motd.d
:
/usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin run-parts --lsbsysinit /etc/update-motd.d
Para um código ligeiramente mais legível, você pode usar tput setaf {color number}
. Note que, para preservar as cores, temos que definir a variável TERM
.
#!/bin/sh
export TERM=xterm-256color
read one five fifteen rest < /proc/loadavg
echo "$(tput setaf 2)
Kernel: 'uname -v | awk -v OFS=' ' '{print $4, $5}''
$(tput setaf 4)Load Averages......: ${one}, ${five}, ${fifteen} (1, 5, 15 min)
$(tput setaf 5)
______________
< Hello World! >
--------------
\ ^__^
\ (oo)\_______
(__)\ )\\/\
||----w |
|| ||
$(tput sgr0)"
salve o arquivo como, por exemplo, /etc/update-motd.d/10-uname
e verifique se ele é executável:
chmod +x /etc/update-motd.d/10-uname
As cores básicas são numeradas:
- 1 - vermelho
- 2 - verde
- 3 - amarelo
- 4 - azul
- 5 - magenta
- 6 - Ciano
- 7 - branco
O código acima gera:
Dependendo do seu gosto, você pode produzir resultados mais coloridos usando lolcat
ou títulos de figlet
. A saída gerada usa a sintaxe bash padrão:
^[(B^[[m
^[[32m
Kernel: 4.9.65-3+deb9u2 (2018-01-04)
^[[34mLoad Averages......: 0.04, 0.05, 0.05 (1, 5, 15 min)
^[[35m
______________
< Hello World! >
--------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
^[(B^[[m
Debian 8 / Ubuntu 14.04
A parte dinâmica é atualizada usando /etc/init.d/motd start
que executa o seguinte:
uname -snrvm > /var/run/motd.dynamic