请问在 Linux 下如何清空一个大文件的内容对磁盘 I/O 的冲击较小?
資深大佬 : zhoudaiyu 2
目前知道如下几种方式可以清空文件(假定文件名是 foo): 1 、echo>foo(>foo,:>foo) 2 、cp /dev/null(cat /dev/null)>foo 3 、dd if=/dev/null of=a 4 、truncate -s 0 a
请问哪种清理方式对磁盘的 I/O 冲击小一些?
大佬有話說 (40)
目前知道如下几种方式可以清空文件(假定文件名是 foo): 1 、echo>foo(>foo,:>foo) 2 、cp /dev/null(cat /dev/null)>foo 3 、dd if=/dev/null of=a 4 、truncate -s 0 a
请问哪种清理方式对磁盘的 I/O 冲击小一些?
@XiLingHost #4 这样会不会有一瞬间向这个文件写数据的应用报错?
退而且求其次的方法是,监控磁盘设备的负载,负载高的时候不写入,负载低的时候再写入。
你要是“安全擦除”那种,你这么还是得每隔字节覆盖一次,哪种方法都一样。
@Jirajine
@ppphp 说的对,但是工作量太大了,太不规范了
想到,还有就是 mkfifo a.log 然后 nohup cat < a.log > /dev/null