sync命令能强制将内存中未写入磁盘的缓冲数据落盘,防范意外断电导致数据丢失;它调用内核sync()系统调用,等待所有脏页真正写入磁盘后才返回,确保文件内容与元数据持久化。

直接运行 sync 命令就能把内存中尚未写入磁盘的缓冲数据强制刷到物理磁盘,这是防范意外掉电导致数据丢失最基础也最有效的手段。
sync 的核心作用就是落盘保命
Linux 默认会把写操作暂存在内存缓冲区(比如修改过的文件内容、目录结构、inode 元数据),等系统空闲或缓冲区满时再批量写入磁盘——这提升了性能,但也埋下风险:一旦突然断电,缓冲区里还没落盘的数据就彻底丢了。
sync 命令调用内核的 sync() 系统调用,强制等待所有“脏页”(dirty pages)真正写进磁盘才返回,确保那一刻起,你看到的文件内容和元数据已持久化。
关键使用场景和操作建议
以下情况建议立即执行 sync:
宝塔Linux面板11.8.1为官网当前正式版,新增AI建站能力并经过宝塔网站工程师深度调教,开放自定义AI功能API,同时对WAF进行界面重构和深度优化,提升拦截能力与运维效率。
- 关机或重启前,手动运行 sync 一次;更稳妥的做法是连续执行三次:sync; sync; sync,避免因内核调度延迟导致部分数据未及时提交
- 完成重要配置修改(如 /etc/fstab、/boot/grub2/grub.cfg)、数据库导出、日志归档后,加一条 sync 再继续下一步
- 在执行 fsck、dd 克隆、LVM 快照或备份脚本(如 rsync + tar)前,先 sync 确保源文件系统状态一致
- 拔除 USB 存储设备前,务必先 sync,再用 eject 或 udisksctl unmount 安全移除
注意它不是万能清理工具
sync 只管把“已修改但未落盘”的数据写出去,它不清理内存缓存(如 page cache、dentries),也不释放 RAM。有人误把它和 echo 3 > /proc/sys/vm/drop_caches 混淆——后者是清缓存,可能反而降低后续读取性能,且与防掉电无关。
真正防掉电,只靠 sync 就够了;清缓存是另一回事,通常没必要手动做。
补充:别依赖 sync -f 或 sync -d 这类非标选项
主流 Linux 发行版(CentOS/RHEL、Ubuntu、Debian)的 sync 命令不支持 -f、-d 等参数。所谓“只刷文件系统不刷磁盘缓存”或“只刷磁盘缓存”的说法,在标准 GNU coreutils 实现中并不存在。你看到的这些选项多出自过时文档或误解。坚持用最简形式:sync,它已涵盖全部安全落盘语义。










