sync命令详解

  

转:https://blog.csdn.net/everything1209/article/details/50423679 html

1.谁和谁同步?node

2.为何要同步?复制移动的过程不是同步的吗,都发生了什么事情?linux

3.内存和硬盘?缓存

数据同步写入磁盘:syncapp

Linux系统中,为了加快数据的读取速度,因此在默认的状况中, 某些已经加载内存中的数据将不会直接被写回硬盘,而是先缓存在内存当中,如此一来, 若是一个数据被你重复的改写,那么因为他还没有被写入硬盘中,所以能够直接由内存当中读取出来, 在速度上必定是快上至关多的!异步

不过,如此一来也形成些许的困扰,那就是万一你的系统由于某些特殊状况形成不正常关机 (例如停电或者是不当心踢到power)时,因为数据还没有被写入硬盘当中,哇!因此就会形成数据的升级不正常啦! 那要怎么办呢?这个时候就须要sync这个命令来进行数据的写入动做啦! 直接在文字接口下输入sync,那么在内存中还没有被升级的数据,就会被写入硬盘中!因此,这个命令在系统关机或从新启动以前, 很重要喔!最好多运行几回(2-4次)!工具

虽然目前的 shutdown/reboot/halt 等等命令均已经在关机前进行了 sync 这个工具的呼叫, 不过,多作几回老是比较放心点~呵呵~post

  1. [root@hotapply home]# syncurl

  2. [root@hotapply home]# sync.net

sync命令 linux同步数据命令

格式: sync 

用途:更新 i-node 表,并将缓冲文件写到硬盘中。

功能:sync命令是在关闭Linux系统时使用的。 用户须要注意的是,不能用简单的关闭电源的方法关闭系统,由于Linux象其余Unix系统同样,在内存中缓存了许多数据,在关闭系统时须要进行内存数据与硬盘数据的同步校验,保证硬盘数据在关闭系统时是最新的,只有这样才能确保数据不会丢失。通常正常的关闭系统的过程是自动进行这些工做的,在系统运行过程当中也会定时作这些工做,不须要用户干预。 sync命令是强制把内存中的数据写回硬盘,以避免数据的丢失。用户能够在须要的时候使用此命令。

sync 命令运行 sync 子例程。若是必须中止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将全部未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。

 

Linux sync命令的做用分析

 
Sync命令
 
在用reboot命令启动unix 系统后,系统提示出错信息,部分应用程序不能正常工做。经仔细检查系统文件,并和初始的正确备份进行比较,发现某些文件确实被破坏了,翻来覆去找不到文件遭破坏的缘由,最后想到了写缓存命令——sync,在reboot前没有运行sync命令,致使了系统文件的改变而不能正常工做。  www.2cto.com  
 
  sync命令的做用是,将有关文件系统的存储器常驻信息送入物理介质内。在暂停系统以前,好比要从新启动机器,必定要去执行sync命令。unix系统运行经验代表,为确保可靠起见,应执行两遍sync命令,这是由于sync命令完成时,并不保证信息实际写到了磁盘上,虽然已经执行了一遍这个命令。在执行sync命令之后,要等待磁盘工做灯灭了(假定有系统工做指示灯的话),再去真正暂停机器的运行或启动机器。
unix系统遭受破坏是随时均可能发生的事情,所以在启动机器或关机以前必定要运行sync命令。记住在任何状况下,慎重地执行sync命令决不会有任何坏处  www.2cto.com  
 
umount时间过长,sync命令的使用
有一个问题,好比 cp 一个文件到SD卡上,是否是首先先将这个文件写到SDRAM上,而后umount的时候再将SDRAM中的内容真正写SD卡上? 我umount的时候会过多一会才出现终端的提示符,根据写入文件的大小肯定 umount的时间?  
后来查了一下资料, Linux文件系统更新是一个复杂的过程,当用户程序对文件系统进行修改之后,例如进行了写操做,文件数据把修改记录在内核缓冲中,在数据没有写到磁盘的时候,依然可以执行用户进程,全部数据的改变都在inode的内容中获得反映。磁盘的数据更新其实是异步进行的,颇有可能在写操做已经完成很长时间之后才真正对磁盘的数据进行更新。

sync命令强制把磁盘缓冲的全部数据写入磁盘,若是在没有把磁盘缓冲区的信息写入磁盘以前终止系统,则磁盘的文件系统就会处在一个不稳定的状态。而在正常模式下即便没有对分区进行umount的操做,在重启以前系统会调用sync命令强制把磁盘缓冲的全部数据写入磁盘,而在急救模式下必须对所挂的分区进行umount的操做,系统才会调用sync命令强制把磁盘缓冲的全部数据写入磁盘,请在急救模式下的朋友注意这个问题。其实“reboot -n(Don’t sync before reboot or halt)”在重启以前不用sync命令强制把磁盘缓冲的全部数据写入磁盘,就很能说明问题。  www.2cto.com  
因此要 cp 完以后要执行 sync 命令将缓冲区的内容写到磁盘中,而后再umount 就不会出现延时了.
 
经验证,采用此方法,延迟写入问题能够解决

原文连接:https://www.linuxidc.com/Linux/2012-06/61871.htm

相关文章
相关标签/搜索