Linux no dia a dia¶
Guia para quem está aprendendo a mexer no servidor. Os exemplos são os comandos que você realmente usa no Braggo.
Regras de ouro¶
- Entenda o comando antes de rodar. Se não sabe o que faz, pergunte ou use
man comando(sai comq). - Teste antes de aplicar.
sudo nginx -tantes de recarregar o Nginx,sudo sshd -tantes de reiniciar o SSH. - Cuidado com
rm -rf. Apaga sem perguntar e sem lixeira. Confira o caminho duas vezes. - Snapshot antes de mudança grande, e lembre: snapshot não é backup (veja Backup do banco).
- Quando algo quebrar, leia o log primeiro, só depois mude coisas.
Onde estou e o que tem aqui¶
| Comando | O que faz |
|---|---|
pwd |
mostra a pasta atual |
ls -lah |
lista arquivos com detalhes, tamanho legível e ocultos |
cd /opt/braggo |
entra em uma pasta (cd .. sobe, cd ~ vai para a sua pasta) |
cat arquivo |
mostra o arquivo inteiro |
less arquivo |
mostra paginado (setas, /texto busca, q sai) |
tail -n 50 arquivo |
últimas 50 linhas |
tail -f arquivo |
acompanha novas linhas ao vivo (Ctrl+C sai) |
grep -i "erro" arquivo |
procura um texto no arquivo |
nano arquivo |
editor simples (Ctrl+O salva, Ctrl+X sai) |
Permissões (o ls -l)¶
-rw-r--r-- 1 root root 1234 Oct 25 14:00 arquivo
drwx------ 2 root root 4096 Oct 25 14:00 pasta
O primeiro bloco são 10 caracteres:
- 1º:
-arquivo,dpasta. - Depois três grupos de três: dono, grupo, todos os outros. Em cada um:
rler,wescrever,xexecutar (ou entrar na pasta).
Os números do chmod somam: r=4, w=2, x=1.
| Modo | Significa | Onde usamos |
|---|---|---|
700 |
só o dono faz tudo | /var/backups/braggo |
600 |
só o dono lê e escreve | /etc/braggo-api.env |
644 |
dono escreve, todos leem | /etc/cron.d/braggo-backup |
755 / 750 |
dono tudo, outros só leem/entram (750: só o grupo) | pastas e scripts |
chown dono:grupo caminho troca o dono. sudo roda o comando como administrador (root).
Serviços (systemd)¶
O Braggo roda como serviços: postgresql, braggo-api, nginx, cloudflared.
| Comando | O que faz |
|---|---|
systemctl is-active postgresql braggo-api nginx cloudflared |
confere os quatro de uma vez |
sudo systemctl status braggo-api |
situação detalhada e últimas linhas |
sudo systemctl restart braggo-api |
reinicia |
sudo systemctl stop braggo-api / start |
para / inicia |
sudo systemctl enable braggo-api |
passa a iniciar com a VM |
sudo systemctl daemon-reload |
relê arquivos .service depois de editar |
sudo systemctl cat braggo-api |
mostra o arquivo do serviço |
Logs (journalctl)¶
| Comando | O que faz |
|---|---|
sudo journalctl -u braggo-api -n 100 --no-pager |
últimas 100 linhas |
sudo journalctl -u braggo-api -f |
ao vivo |
sudo journalctl -u braggo-api --since "1 hour ago" |
última hora |
sudo journalctl -u braggo-api -p err |
só erros |
sudo tail -n 50 /var/log/nginx/error.log |
erros do Nginx |
sudo tail /var/log/braggo-backup.log |
resultado dos backups |
Rede¶
| Comando | O que faz |
|---|---|
ip -br a |
IPs da VM |
ip -br link |
MAC das placas |
sudo ss -tlnp |
quem escuta em qual porta |
curl -I http://localhost/ |
testa só o cabeçalho de uma URL |
curl -i http://127.0.0.1:5000/api/ROTA |
testa a API direto, sem o Nginx |
sudo ufw status verbose |
regras do firewall |
Leia o ss: 127.0.0.1:5432 = só local (bom). 0.0.0.0:5432 = aberto para a rede (ruim para banco).
Disco, memória e processos¶
| Comando | O que faz |
|---|---|
df -h |
espaço livre por disco |
du -sh /var/backups/braggo |
tamanho de uma pasta |
free -h |
memória |
top (ou htop) |
processos ao vivo (q sai) |
uptime |
há quanto tempo a VM está ligada |
Pacotes¶
sudo apt update # atualiza a lista de pacotes disponíveis
sudo apt upgrade -y # instala as versões novas
sudo apt install -y nome # instala um pacote
sudo reboot # reinicia a VM
Copiar arquivos¶
scp arquivo.tar.gz servidor:/tmp/ # PC → VM
scp servidor:/tmp/arquivo.txt . # VM → PC (para a pasta atual)
Ler comandos com símbolos¶
| Símbolo | Significa |
|---|---|
| barra vertical (pipe) | passa a saída de um comando para o próximo, como em ls -l seguido de head |
> |
grava a saída em um arquivo, apagando o que tinha |
>> |
acrescenta ao arquivo |
2>&1 |
manda também as mensagens de erro para o mesmo lugar |
$(comando) |
usa o resultado de um comando dentro de outro |
sudo tee -a arquivo |
acrescenta em um arquivo protegido (o >> com sudo não funciona, porque o redirecionamento roda sem sudo) |
<<'EOF' ... EOF |
bloco de várias linhas enviado como texto ao comando (o > no começo das linhas que aparece ao colar é só o terminal esperando o fim do bloco) |
Cron (tarefas agendadas)¶
Linha de /etc/cron.d:
minuto hora dia-do-mês mês dia-da-semana usuário comando
0 3 * * * root /usr/local/bin/backup-braggo.sh
* quer dizer "todos". Confira se o serviço está vivo: systemctl is-active cron.
Roteiro de estudo sugerido¶
- Rode, só para olhar, os comandos das tabelas acima (todos de leitura).
- Leia um log de ponta a ponta:
sudo journalctl -u braggo-api -n 100 --no-pager. - Quebre algo no snapshot de propósito (pare o Nginx, por exemplo) e conserte seguindo Problemas comuns.
- Faça o teste de restauração do backup.
- Depois, estude permissões e
systemdcom calma: são a base de tudo aqui.