Comando sync do Linux: o que é, para que serve e como usar para proteger seus dados

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

Sincronize o que está na RAM com o disco e proteja seus dados no Linux.

O comando linux sync ordena ao kernel que grave imediatamente no disco tudo o que ainda está só na RAM (o “rascunho”), garantindo a integridade dos dados caso falte energia ou o sistema seja desligado de forma abrupta.

Analogia rápida: imagine que o Linux, para ser mais rápido, anota mudanças em um rascunho (a RAM) antes de “passar a limpo” no caderno (o disco). O sync é a ordem de “passar a limpo agora”.

O que é o comando sync e por que ele é essencial?

O sync pede ao kernel que sincronize os buffers de escrita — isto é, que force a gravação de dados pendentes do cache de disco para o armazenamento físico (HD, SSD, pendrive, etc.).
Isso reduz o risco de corrupção e de dados inconsistentes quando ocorre:

  • queda de energia ou travamento;
  • remoção de mídia removível sem desmontar;
  • scripts que dependem de dados recém-gravados estarem realmente persistidos.

Observação importante: processos normais de shutdown/reboot já fazem a sincronização; no uso diário você não precisa rodar sync o tempo todo. Ele é mais útil em momentos críticos (veja abaixo).

Como usar o comando sync: sintaxe e exemplos práticos

1) Sincronizar tudo que está pendente

sync

Sem saída na tela; apenas aguarde concluir. Útil antes de ações delicadas (troca de bateria, cut-off de energia, etc.).

2) Sincronizar e desligar com segurança

sync && shutdown -h now
# ou
sync && systemctl poweroff

Em sistemas modernos o desligamento já sincroniza, mas a combinação acima dá garantia explícita em ambientes sensíveis.

3) Garantir gravação antes de remover um pendrive

sync && umount /media/pendrive

O umount também força a gravação do que falta, mas chamar sync antes adiciona uma camada de segurança (especialmente após grandes cópias).

4) Após copiar muitos arquivos

rsync -aP ~/Videos/ /media/backup/Videos/ && sync

Garante que o backup esteja realmente persistido no disco externo antes de você desconectar.

5) Sincronizar um sistema de arquivos específico (avançado)

sync -f /media/pendrive

Pede a sincronização focada no sistema de arquivos onde o caminho reside. Útil para mídias removíveis e pontos de montagem dedicados.

Dica: para “confirmar” o tempo gasto, use time sync ou sync && echo "ok".

Quando usar o comando sync: os momentos cruciais

  1. Antes de desligar à força (corte de energia programado, manutenção elétrica, servidores em rack sem no-break).
  2. Depois de operações intensas de gravação, como grandes cópias/rsync, exportação de bancos de dados, dd de imagens de disco.
  3. Em scripts de backup, imediatamente antes de marcar o job como concluído ou desmontar o destino.
  4. Antes de remover mídia USB/SD, principalmente se você acabou de escrever muitos arquivos.
  5. Após editar arquivos de configuração críticos (bootloader, fstab, serviços) quando você precisa garantir persistência antes de reiniciar.

Use com critério: executar sync o tempo todo pode impactar desempenho. Prefira momentos críticos em que a integridade dos dados é prioridade.

Sync vs. fsync: qual é a diferença?

  • sync (usuário / sistema)
    É um comando de usuário que solicita ao kernel a gravação dos dados pendentes.
    • Sem argumentos: age no sistema inteiro.
    • Com caminho/-f: foca no sistema de arquivos/arquivo associado (dependendo da implementação).
  • fsync (chamada de sistema / por arquivo)
    É uma chamada de sistema usada por programas para sincronizar um arquivo específico (o descritor aberto). Em termos práticos:
    • um banco de dados pode chamar fsync após cada commit;
    • utilitários como cp/rsync podem usar fsync para garantir persistência do arquivo recém-escrito.

Resumo: sync é o martelo global (ou por sistema de arquivos); fsync é o cinzel por arquivo. Para administradores e usuários, sync resolve os casos operacionais; para desenvolvedores, fsync é a ferramenta fina dentro dos apps.

Notas e boas práticas rápidas

  • journaling e fsck: sistemas de arquivos com journaling minimizam danos, mas não substituem a sincronização. Se ocorreu queda de energia, rode o fsck conforme a política da sua distro.
  • não precisa “três sync”: o hábito antigo de sync; sync; sync não é necessário em sistemas atuais.
  • em SSDs também vale: o comando continua útil; o kernel usa as barreiras/flushes adequados ao dispositivo.
Compartilhe este artigo