Estou recebendo o erro Fsync com falha. Por quê?

12

Tentei alterar os timestamps tcp na instância Ec2 (que é o Ubuntu 12.04). Abri o editor e alterei o valor 1de 0. E quando tentei salvar o arquivo, recebo este erro:

/proc/sys/net/ipv4/tcp_timestamps" E667: Fsync failed

Eu sou muito novo no Ubuntu. Alguém pode me ajudar nisso?

homem Morcego
fonte

Respostas:

27

Seu editor provavelmente está fazendo coisas engraçadas nesse arquivo (os arquivos em / proc não são arquivos reais, são uma interface para os níveis mais baixos do sistema operacional). Enquanto a mudança provavelmente está funcionando bem, a maneira usual de atualizar as coisas no proc é diretamente com um comando shell, como:

echo 1 | sudo dd of=/proc/sys/net/ipv4/tcp_timestamps

Se você deseja que essa configuração seja aplicada toda vez que você inicializar, crie um arquivo chamado /etc/sysctl.d/tcp-timestamps.conf, contendo o seguinte:

net.ipv4.tcp_timestamps = 1
Jeremy Kerr
fonte
3
Esse padrão (eco VALUE | sudo dd de = / caminho / para / arquivo) é muito útil. Muito obrigado!
Malcolm
1
Também funcionou para mim e para definir outros parâmetros do kernel. Isso ajudou a definir outro parâmetro do kernel chamado allow_tpm. eco 1 | sudo dd de = / sys / module / libata / parameters / allow_tpm
1
Qual é o propósito dd of? Tudo o que entendo é o eco e o tubo, mas não entendo por que o dd era necessário. Por que não >?
Adelin
1
@ Adelin ddExiste para executar a gravação como root. O restante do pipeline de comandos não precisa ser privilegiado, portanto, dd é a única parte que executamos no sudo. Se rodássemos o shell inteiro como root, o >redirecionamento seria bom. Mas eu gosto de minimizar o que é executado com privs raiz.
Jeremy Kerr
7

Algum tempo atrás, estávamos recebendo exatamente o mesmo erro. Depois de perder vários minutos na investigação, não havia mais espaço no dispositivo. Você pode verificar se é o seu caso. Tente liberar algum armazenamento para corrigir rapidamente o problema.

Nota: Essa pode não ser a melhor descrição técnica do problema, mas pode ajudar a corrigir rapidamente o problema. A resposta verificada explica isso com mais detalhes. Minha resposta foi apenas para compartilhar como eu resolvi esse problema.

NIVESH SENGAR
fonte
2
Não sei por que você foi derrotado. Foi o primeiro resultado no google e resolvi o meu problema, então muito obrigado!
Johannes Stadler
3

Vejo que isso foi respondido corretamente há muito tempo, mas existe um comando mais simples:

sudo sysctl net.ipv4.tcp_timestamps=1

Além disso, você pode fazer o mesmo com outras configurações, como:

sudo sysctl vm.admin_reserve_kbytes=16384

Como você pode ver, você pode modificar qualquer arquivo em / proc / sys / especificando o restante de sua localização, enquanto altera o delimitador de "/" para "."

Exemplo: "/ proc / sys / net / ipv4 / tcp_timestamps" é especificado como "net.ipv4.tcp_timestamps"

user8542574
fonte
1

Fsync falhou AVISO: O arquivo original pode ser perdido ou danificado. Não saia do editor até que o arquivo seja gravado com sucesso!

Pode ser um problema de espaço, pois a limpeza de alguns arquivos funcionou para mim

Bandana D
fonte