Esta chamada de sincronização funciona conforme o esperado?

2

Estou escrevendo um arquivo (vamos chamá-lo, xyz.bin ) para uma unidade flash USB ... a unidade flash monta sob o caminho: / media / myUsb ...

Para evitar a perda de dados, estou fazendo um comando de sincronização como este:

sync -f /media/myUsb

Em seguida, eu desanexe / removi o flashDrive usando outros comandos como este: remoção segura

O problema: A equipe que consome esse flashdrive está me dizendo que às vezes o arquivo é corrompido ... Estou depurando meu aplicativo para descartar qualquer coisa, mas fico preocupado se o sync commnand está sendo feito corretamente ou se eu entendi mal o sync man page .

EDITAR

Eu trago outros detalhes sobre o processo que está sendo executado (se isso ajudar) ... Usando o JAVA:

  1. copio o arquivo para o pendrive ou unidade flash anexada.
  2. Eu chamo a sincronização do sistema operacional como: sync -f /media/myUsb (usando o Processo Api
  3. Se o comando retornar OK (aguardo usando: process.waitFor () ); então, eu executo udisksctl unmount -b <usbMountPoint> ...
  4. Se o comando retornar OK (novamente, eu espero por ele ...), então, eu executo udisksctl power-off -b <usbDevice>

  5. Se o comando retornar OK (novamente, espero por ele ...), presumo que a gravação e a desanexação foram bem-sucedidas! Então, eu indico ao operador para remover o pendrive ou flashdrive ...

  6. Então, outra equipe recebe o pendrive e tenta ler o arquivo que foi escrito ... Então, as vezes, tudo funciona bem ... outras vezes, eles disseram que o arquivo vem corrompido e eles não podem ler o arquivo. ..

Neste momento, estou fazendo um teste diferente para descobrir onde está o problema ... No entanto, minha dúvida aqui é: Os comandos do SO executados estão sendo executados corretamente ou apenas invoco algo que tenha algum sentido?

    
por Carlitos Way 09.08.2018 / 00:46

0 respostas