有没有办法只同步一个分区?

有没有办法只同步一个分区?

有没有一种方法可以只同步一个分区而不是所有分区?

类似于“sync /dev/sdc1”。

答案1

您可以使用同步选项重新安装,然后使用异步重新安装:

mount -o remount,sync /mountpoint
mount -o remount,async /mountpoint

使用重新安装选项不会干扰使用重新安装的文件系统的进程。

答案2

有一个标准函数可以同步一个文件的数据(和元数据):fsync。没有标准或通用的 shell 命令来访问它,但您可以使用 perl 的sync方法IO::Handle:

perl -MIO::File -e 'new IO::File($ARGV[0], "r+")->sync()' filename

没有标准或通用的函数或 shell 命令可以仅同步一个分区。

最近的 Linux 系统,有syncfs系统调用(在内核 2.6.39 中引入,并自此公开)glibc 2.14)。我认为这个系统调用还没有在 coreutils 或 util-linux 中公开。

答案3

现在可以使用sync -f

sync -f /mount/point

摘自同步(1):

       -f, --file-system
              sync the file systems that contain the files

答案4

如果您指的是sync将内存中的数据刷新到磁盘的实用程序,那么答案是否定的。这是因为它sync通常在关机或重新启动过程中使用,建议将数据安全写入磁盘,并且操作的真正目标是内存,而不是磁盘,并从 RAM 中获取缓冲数据到安全的地方。磁盘正是数据存放的地方。

相关内容