Em que eu meio que forneço contexto, meio divertido
Você está encontrando um exemplo do motivo principal pelo qual não gosto de gerenciar sistemas Solaris: nada é fácil.
Eu não sei se o local realmente vai fazer nada, exceto alterar a ordem de certas partes do timestamp. Eu estou interessado se alguém souber de uma maneira de persuadir o last
do Solaris a dar o ano, mas eu não vou segurar minha respiração. O mantra de desenvolvimento de software da Sun parece ter sido "Tecnicamente funciona".
Sun parece ter desenvolvido algo até o ponto absolutamente necessário, e então praticamente parou por aí. Então você acaba com soluções geralmente aceitas sendo como estas e você apenas mantém uma coleção listada de soluções alternativas para problemas comuns.
A única maneira que encontrei de fazer isso é usar /usr/lib/acct/fwtmp
para despejar todo o conteúdo de /var/adm/wtmpx
em um canal para outro programa que eu uso para manipular a saída de texto ( grep
, tac
, sed
, etc).
Bônus: como buscar o final do arquivo e apenas voltar pelo comprimento fixo do registro wtmpx
seria pedir muito, fwtmp
só pode imprimir o conteúdo de wtmpx
conforme eles aparecem no arquivo. Então você tem que usar alguns outros meios (provavelmente tac
) de reverter as linhas, a menos que você esteja realmente interessado nas informações mais antigas (que é o caso de uso provável menor , mas eu discordo).
Dependendo de quanto tempo seu sistema está em operação wtmpx
pode ser um pouco grande, então você pode querer ir tomar uma xícara de café, talvez verificar se seus pneus estão insuficientemente inflados, e talvez ler um livro ou dois enquanto você está nisso.
A resposta real à sua pergunta:
Este é um comando que emula last
de forma que é utilizável para a maioria das pessoas interessadas em ver os registros de login:
# cat /var/adm/wtmpx | /usr/lib/acct/fwtmp | tac | head
Você notará que tenho que canalizar wtmpx
, pois eles não fornecem um meio de simplesmente fornecer o arquivo para fwtmp
. Isso porque alimentá-lo no via stdin
Technically Works ™ na maioria dos casos de uso e eles não precisariam escrever algumas linhas extras de código. Então, eles preferem apenas fazer os administradores fazerem isso.
Esta é uma saída de exemplo dos itens acima nos sistemas que eu cuido:
[root@atum root]# cat /var/adm/wtmpx | /usr/lib/acct/fwtmp | tac | head
jadavis6 ts/1 pts/1 19410 7 0000 0000 1382723864 157168 0 19 ditirlns01.xxx.edu Fri Oct 25 13:57:44 2013
jadavis6 sshd 19404 7 0000 0000 1382723864 133973 0 19 ditirlns01.xxx.edu Fri Oct 25 13:57:44 2013
oracle sshd 6640 8 0000 0000 1382713401 157107 0 0 Fri Oct 25 11:03:21 2013
oracle ts/1 pts/1 6647 8 0000 0000 1382713401 150489 0 0 Fri Oct 25 11:03:21 2013
oracle ts/1 pts/1 6647 7 0000 0000 1382712445 24488 0 23 a0003040148735.xxx.edu Fri Oct 25 10:47:25 2013
oracle sshd 6640 7 0000 0000 1382712442 304729 0 23 a0003040148735.xxx.edu Fri Oct 25 10:47:22 2013
jadavis6 sshd 23537 8 0000 0000 1382560970 410725 0 0 Wed Oct 23 16:42:50 2013
jadavis6 ts/1 pts/1 23544 8 0000 0000 1382560970 404795 0 0 Wed Oct 23 16:42:50 2013
jadavis6 ts/1 pts/1 23544 7 0000 0000 1382552999 619524 0 19 ditirlns01.xxx.edu Wed Oct 23 14:29:59 2013
jadavis6 sshd 23537 7 0000 0000 1382552999 602215 0 19 ditirlns01.xxx.edu Wed Oct 23 14:29:59 2013
[root@atum root]#
EDITAR:
Eu sei que estou me lamentando sobre algo pequeno lá em cima, mas depois de um tempo eu me canso de cada pequena coisa (como simplesmente perguntar "o que é o ano?") se transformando em uma hora de googlefest ou algo mais ou menos conhecimento apenas tribal (como a existência de fwtmp
).