我正在写一个备份脚本
之前我曾经sleep(60)
等待一分钟,以便内核自动刷新数据.我认为这是矫枉过正,所以现在我正在尝试,sudo hdparm -F --verbose /dev/disk
但它报告错误 - HDIO_DRIVE_CMD(flushcache) failed: Invalid exchange
多次.
我想知道是否有任何标准方法将缓存刷新到硬盘.我认为有,因为usb-creator-gtk
它,umount
它做到了.
我正在使用Ubuntu x64 9.10
PS:我试图避免"同步",因为这个页面说,这是不是安全的.http://ubuntuforums.org/showthread.php?t=589975
Duc*_*uck 32
是否sync
足够?
编辑:关于你的编辑 - 你试图避免同步,因为互联网上的某个人在他的帖子上放了一个CYA免责声明?也许我不知道同步有什么问题,但这本身可能值得第二篇.
仍然,从Linux信息页面:
sync将内存中缓冲的所有数据写入磁盘.这可以包括(但不限于)修改的超级块,修改的inode以及延迟的读取和写入.这必须由内核实现; 同步程序除了执行"同步"系统调用外什么都不做.
您需要 fsync(man 第 2 节)函数调用,但如果您在脚本中执行此操作,您可能需要使用sync 命令(man 第 8 节),该命令仅调用sync()。
归档时间: |
|
查看次数: |
57822 次 |
最近记录: |