我们最近遇到了生产ubuntu服务器的情况,我们的一个重要文件已损坏。
经过调查,我们发现我的一个python脚本为该文件写内容时只写了部分内容,因为当时该节点正好点击了磁盘已满的情况。
有人可以建议什么是确保内容是完整书写还是没有内容写入的最佳方法,以便文件不会处于损坏状态?
我的python脚本的那部分就像
一样简单with open('workfile', 'w') as f:
f.write("Write some thing")
我做了一些研究,但无法获得任何好的pythonic方法。
由于我的文件是一个不断增长的文件,我无法创建临时文件并按atomic writing to file with Python中的建议重命名。我将丢失旧数据。它可能使操作成为原子,但我想要的是完全写入的数据,而不是部分写入。
即使写入临时文件并重命名,我们也不确定数据是否完全写入临时文件。