我尝试更改 Ec2 实例 (Ubuntu 12.04) 中的 tcp 时间戳。我打开编辑器并将值1
从更改为0
。当我尝试保存文件时,出现此错误:
/proc/sys/net/ipv4/tcp_timestamps" E667: Fsync failed
我对 Ubuntu 还很陌生。有人能帮我解决这个问题吗?
答案1
您的编辑器可能对该文件做了一些奇怪的事情(/proc 中的文件不是实际文件,它们是操作系统较低级别的接口)。虽然更改是大概工作正常,更新 proc 中内容的通常方式是直接使用 shell 命令,例如:
echo 1 | sudo dd of=/proc/sys/net/ipv4/tcp_timestamps
如果您希望每次启动时应用此设置,请创建一个名为的文件/etc/sysctl.d/tcp-timestamps.conf
,其中包含以下内容:
net.ipv4.tcp_timestamps = 1
答案2
前段时间我们遇到了完全相同的错误。经过几分钟的调查,发现设备上没有剩余空间。您可以检查是否是这种情况。尝试释放一些存储空间以快速解决问题。
注意:这可能不是问题的最佳技术描述,但它可能有助于快速解决问题。经过验证的答案对此进行了更详细的解释。我的回答只是分享我如何解决这个问题。
答案3
我看到这个问题很久以前就得到了正确的回答,但是有一个更简单的命令:
sudo sysctl net.ipv4.tcp_timestamps=1
您还可以对其他设置执行相同操作,例如:
sudo sysctl vm.admin_reserve_kbytes=16384
如您所见,您可以通过指定其其余位置来修改 /proc/sys/ 中的任何文件,同时将分隔符从“/”更改为“。”
例如:“/proc/sys/net/ipv4/tcp_timestamps”指定为“net.ipv4.tcp_timestamps”
答案4
Fsync 失败警告:原始文件可能丢失或损坏,请勿退出编辑器,直到文件成功写入!
可能是空间问题,因为清理几个文件对我有用