同步命令实际上同步什么?

1 debian synchronization disk

当我sync作为普通用户执行此操作时,这会刷新属于其他用户(包括 root 用户)还是属于我自己的所有缓冲区?man不提供此信息。

我特别询问有关 Debian 9 的问题,但欢迎提供有关 Linux 和 Unix 的更一般的答案。

Ral*_*edl 5

sync命令使用sync系统调用。

系统调用手册sync说:

sync() 会导致对文件系统元数据和缓存文件数据的所有挂起修改写入底层文件系统。

所以同步将刷新所有缓冲区。术语“属于用户”不适用于缓冲区,缓冲区属于文件和文件系统元数据,而不属于用户。多个用户可能会修改同一个文件,文件系统和缓冲区子系统跟踪特定用户的更改是没有意义的。

  • @Tomasz 任何拥有足够访问权限能够运行 `sync` 的用户也可能有足够的访问权限来导致比 `sync` 更多的 I/O — *eg* `grep -r hello /` — 或破坏其他形式造成严重破坏。“sync”不会损害机密性,因此这方面不存在风险。 (2认同)