O journalctl lê os registos que o systemd guarda. A partir de um telemóvel, basta uma ligação SSH e um punhado de opções: -u nginx filtra por serviço, -f acompanha a saída em direto, -b limita ao arranque atual, --since restringe por hora, -p err mostra apenas erros e -n define quantas linhas imprimir.

Comandos journalctl essenciais para verificar um servidor a partir do telemóvel

journalctl -u nginx -f mostra as entradas mais recentes do nginx e depois aguarda novas, tal como tail -f num ficheiro de registo. Estes comandos cobrem a maioria das verificações rápidas:

# Follow nginx live (Ctrl+C to quit)
journalctl -u nginx -f

# Last 50 nginx entries, no pager
journalctl -u nginx -n 50 --no-pager

# Everything since the current boot
journalctl -b

# Previous boot (needs a persistent journal)
journalctl --list-boots
journalctl -b -1

# Narrow by date or time
journalctl --since "2026-10-26 08:00" --until "2026-10-26 09:30"
journalctl -u nginx --since "1 hour ago"
journalctl --since today

# Errors or worse in this boot
journalctl -p err -b

# Combined: nginx errors in the last 10 minutes
journalctl -u nginx -p err --since "10 min ago"

Se o seu utilizador não pertencer ao grupo systemd-journal ou adm, o journalctl só mostra as suas próprias entradas; acrescente sudo no início para ler os registos do sistema. Todas as opções estão documentadas na página de manual do journalctl.

O que filtra cada opção do journalctl: -u, -f, -b, --since, -p e -n

As opções do journalctl combinam-se com lógica AND: journalctl -u nginx -b -p err devolve apenas os erros do nginx desde o último arranque.

  • -u: filtra por unidade systemd. Aceita nginx ou nginx.service e pode ser repetida para intercalar várias unidades.
  • -f: acompanha o journal em direto, mostrando primeiro as últimas 10 entradas.
  • -b: limita a saída ao arranque atual; -b -1 corresponde ao anterior. Útil depois de um reinício inesperado.
  • --since e --until: aceitam datas no formato "YYYY-MM-DD HH:MM:SS" e expressões como yesterday, today ou "2 hours ago".
  • -p: prioridade syslog de 0 (emerg) a 7 (debug). -p err inclui err, crit, alert e emerg.
  • -n: número de entradas finais. -n 100 impede que milhares de linhas inundem um ecrã pequeno.

Há mais duas opções úteis num ecrã estreito: -r inverte a ordem para que as entradas mais recentes apareçam primeiro, e -o cat mostra apenas a mensagem, sem data, anfitrião nem processo, o que reduz a quebra de linhas.

journalctl no iOS e Android versus computador: tabela comparativa

O journalctl envia a sua saída para o paginador less, controlado com PgUp, PgDn, End e q; o teclado de sistema do telemóvel não tem nenhuma dessas teclas.

Tarefa no journalctlComputadorTelemóvel com teclado de sistemaTelemóvel com termi1
Sair de -fCtrl+CSem tecla Ctrl diretaTecla Ctrl no seu próprio teclado
Percorrer o paginadorPgUp, PgDn e EndSem teclas de paginaçãoCamada fn com PgUp, PgDn, Home e End
Completar nomes de unidadesTabSem TabTecla Tab dedicada
Mudança de redeLigação por cabo ou Wi-Fi estávelO SSH pode cair ao mudar para a rede móvelO Mosh mantém a sessão ativa
Deixar -f a correrA janela fica abertaPerde-se se a sessão cairO tmux mantém-no a correr

Com qualquer cliente, acrescentar --no-pager ou -n elimina por completo a necessidade de teclas de paginação.

journalctl -f sem quebras: Mosh e tmux nas mudanças de rede

O Mosh usa UDP, por omissão nas portas 60000-61000, e inicia o mosh-server através de uma ligação SSH inicial; é por isso que um journalctl -u nginx -f em execução sobrevive à mudança de Wi-Fi para rede móvel.

A firewall do servidor tem de permitir esse intervalo UDP, além da porta TCP 22 do OpenSSH. O Mosh não faz encaminhamento de portas nem encaminhamento X11. Se o servidor não tiver IP público nem portas abertas, uma rede mesh privada Prialo ou o Tailscale torna-o acessível sem o expor.

Para manter o acompanhamento a correr mesmo depois de fechar a aplicação, inicie-o dentro do tmux:

tmux new -s logs
journalctl -u nginx -f
# Ctrl+B then d to detach; when you come back:
tmux attach -t logs

O termi1 combina ambos: mantém a sessão ativa com o Mosh e usa o tmux para que aquilo que deixou a correr continue lá quando voltar.

Exportar registos do journalctl para um ficheiro e descarregá-los por SFTP

journalctl -u nginx --since today --no-pager > /tmp/nginx-today.log guarda as entradas de hoje do nginx em texto simples, prontas a anexar a um ticket ou a ler mais tarde.

No computador, pode obtê-lo com scp, que usa o protocolo SFTP por omissão desde o OpenSSH 9.0. No termi1, o SFTP está integrado, por isso pode ver e descarregar o ficheiro sem sair da sessão. Apague depois o ficheiro de /tmp se contiver dados sensíveis.

A IA do termi1 escreve o comando journalctl sem premir Enter

A IA do termi1 transforma uma frase escrita ou ditada, como "erros do nginx da última hora", num comando que é escrito na linha de comandos sem premir Enter, para que possa verificar as flags antes de o executar.

Tem dois modos: "Review", que nunca prime Enter, e "Safe auto", o modo predefinido, em que apenas um conjunto limitado de comandos reconhecidos como seguros recebe Enter. Nas ligações marcadas como produção, o Production Guard garante que nada recebe Enter automaticamente e retém tudo o que apague, pare ou altere algo, como um systemctl restart nginx depois de ler os registos. A IA nunca abre a sessão nem recebe chaves ou palavras-passe, e as chaves SSH geradas no telemóvel ficam no armazenamento seguro do sistema. Saiba mais sobre o terminal SSH, Mosh e SFTP, que pode descarregar na App Store ou no Google Play.

Perguntas frequentes

Como vejo os registos do nginx em tempo real com o journalctl?

Vê os registos do nginx em tempo real com journalctl -u nginx -f, que mostra as últimas dez entradas e acrescenta as novas à medida que chegam. Prima Ctrl+C para sair. Se o nginx também escrever em /var/log/nginx, esses ficheiros existem separadamente do journal.

Qual é a diferença entre journalctl -b e journalctl -b -1?

O journalctl -b mostra as entradas do arranque atual, enquanto o journalctl -b -1 mostra o arranque anterior. O segundo só funciona se o journal for persistente, ou seja, se estiver guardado em /var/log/journal e não apenas em memória. O journalctl --list-boots lista os arranques disponíveis.

Que prioridades inclui o journalctl -p err?

O journalctl -p err inclui as mensagens com prioridade err (3) e todos os níveis mais graves: crit, alert e emerg. Deixa de fora warning, notice, info e debug. Combinado com -b ou --since, é a forma mais rápida de ver o que falhou sem ler todas as linhas informativas.

Porque é que o journalctl não mostra os registos do sistema sem sudo?

Sem sudo, o journalctl só mostra as entradas do próprio utilizador quando este não pertence ao grupo systemd-journal ou adm. Adicionar o utilizador a um desses grupos permite ler o journal do sistema sem elevar privilégios em cada consulta. A alteração aplica-se depois de iniciar uma nova sessão.