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

相關文章
相關標籤/搜索