Existe uma maneira de sincronizar apenas uma partição?


Respostas:


10

você pode remontar com a opção sync e remontar novamente com async:

mount -o remount,sync /mountpoint
mount -o remount,async /mountpoint

Usar a opção remontar não interferirá nos processos que usam o sistema de arquivos remontado.


2
Por que você acha que são necessários dois remounts? Em pelo menos 2.6.32, o kernel do_remount_sb executa o sync_filesystem, que é a mesma função chamada na chamada do sistema syncfs introduzida em lwn.net/Articles/433384 .
Yuriy Nazarov 01/01

5

Há uma função padrão para dados de sincronização (e metadados) de um arquivo: fsync. Não existe um comando shell padrão ou comum para acessá-lo, mas você pode usar o syncmétodo do perl em IO::Handle:

perl -MIO::File -e 'new IO::File($ARGV[0], "r+")->sync()' filename

Não há função padrão ou comum ou comando de shell para sincronizar apenas uma partição.

Nos sistemas Linux recentes , existe a syncfschamada do sistema (introduzida no kernel 2.6.39 e exposta desde o glibc 2.14 ). Eu não acho que essa chamada de sistema esteja exposta no coreutils ou no util-linux ainda.


1
A última frase sobre syncfsé a parte mais relevante.
poolieby

3

Montar a partição com a syncopção pode ser uma solução.


2

Se você quer dizer o syncutilitário que libera dados da memória para o disco, a resposta é não. Isso se deve ao fato de que syncgeralmente é usado durante um procedimento de desligamento ou reinicialização, onde é aconselhável obter dados gravados com segurança no disco, e o objetivo real da operação é a memória, não os discos, e a retirada desses dados em buffer da RAM para algum lugar seguro. Os discos são exatamente onde os dados terminam.


0

Se btrfs:

btrfs filesystem sync /path/under/mountpoint
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.