「sync(1)」-

将缓存写入持久化存储中

命令语法格式

sync [OPTION] [FILE]…

命令描述

sync将内存中缓冲的任何数据写入磁盘。这可以包括(但不限于)修改的超级块、修改的inode、延迟的读取和写入。这必须由内核来实现;sync程序只是执行sync,syncfs,fsync,fdatasync系统调用,除此之外什么也不做。

内核将数据保存在内存中以避免执行(相对较慢)的磁盘读取和写入操作。这可以提高性能,但是如果计算机崩溃,则可能导致数据丢失或文件系统损坏。sync命令指示内核将数据写入永久存储器。

如果指定了任何参数,那么默认情况下只会使用fsync(2)系统调用来同步这些文件。

命令支持的选项及含义

如果至少指定了一个文件FILE,则可以使用以下选项更改同步方法。

-d, –data
使用fdatasync(2)仅同步文件的数据,以及用于维护文件系统一致性所需的任何元数据。

-f, –file-system
为包含FILE的文件系统同步所有I/O等待,使用syncfs(2)系统调用。

请注意,如果传递设备节点(像“/dev/sda”这样的),通常不会指定此选项,因为这将同步包含的文件系统,而不是引用的文件系统。还请注意,根据系统的不同,传递单个设备节点或文件可能具有不同的sync特性,与不带参数时相比。即,在与未提供参数时而使用的全局sync(2)相比,传递给fsync(2)的参数可以通过写障碍提供更大的保证。

–help
显示帮助信息并退出。

–version
显示版本信息并退出。

相关手册

fdatasync(2), fsync(2), sync(2), syncfs(2)

查看在线手册:http://www.gnu.org/software/coreutils/sync

查看info手册:info ‘(coreutils) sync invocation’

参考文献

  • man 1 sync, version GNU coreutils 8.28

更新日志

  • 06/17/2018 创建文章