Linux重要的同步命令_sync
摘要: 本文从 是什么
、为什么
、怎么用
三个角度介绍了 Linux 重要的同步命令 sync。
什么是 sync
Linux sync 命令用于将位于缓冲区中的数据写入永久性存储中。
缓冲区位于易失性存储介质中,例如 DDR(内存)、SRAM 等,这种介质中的数据在掉电时会丢失。
永久性存储,也成为了非易失性存储,是指硬盘、磁盘等介质,掉电之后数据不会丢失。
为什么 sync
-
为什么需要缓冲区
缓冲区的出现主要是因为处理器、易失性存储(内存等)和非易失性存储(硬盘等)的性能差别导致的。
处理器的速度最快,易失性存储次之,而非易失性存储的速度最慢。
如果没有缓冲区,每次处理器修改文件时都需要等待硬盘把数据保存好后,才能继续执行其他任务。这会影响计算机的整体性能,使计算机的处理速度变慢。
有了缓冲区之后,处理器每次修改文件时,只需等待内存保存数据即可。当内存中的数据积累到一定数量,或者过了一定时间,就可以批量写入硬盘。这种方式可以大大提高计算机的性能和效率,减少计算机的响应时间。
-
缓冲区带的风险
正常情况下,系统每隔一段时间(几秒或几十秒)就会把缓冲区的数据写入硬盘,避免数据丢失。
当系统正常关机(shutdown)或者重启(reboot)的时候,系统也会将缓冲区的数据写入硬盘(其实就是通过 sync 实现的)。
但是,如果设备异常掉电或者系统崩溃,那么缓冲区的数据就来不及写入硬盘,从而导致数据丢失,甚至引起系统损坏。
-
sync 的作用
Linux 的 sync 命令为我们提供了一种主动将缓冲区的数据写入硬盘的机制。当我们更改了重要文件后,可以立即使用 sync 命令,将缓冲区的数据同步到硬盘中。
怎么用 sync
基础语法
sync [options] [file]
options
和file
选项不是必须的,通过file
可以指定需要同步的文件。
当不传递任何参数的时候,sync 命令会将缓冲区中的所有数据同步到硬盘中。例如:
sync
options 参数
-
-d
,--data
:只同步文件的数据,不同步不需要的元数据。 -
-f
,--file-system
:只同步包含指定文件的文件系统,此时文件数据和元数据都会被同步。 -
--help
:显示帮助。 -
--version
:查看版本信息。
示例
-
同步缓冲区中的所有数据
sync
-
同步指定文件
/home/linux/myfile1
和/home/linux/dir2/myfile2
sync /home/linux/myfile1 /home/linux/dir2/myfile2
-
只同步文件数据和必需的元数据,不同步不需要的元数据
sync -d ./myfile1 ./myfile2 ./myfile3
-
同步
./mydir
目录,包括该目录中的所有文件和子目录sync ./mydir
-
同步包含
myfile1
的文件系统sync -f myfile1
-
查看版本信息
sync --version
-
查看帮助文档
sync --help