1. 程式人生 > >sync命令 linux同步資料命令

sync命令 linux同步資料命令

sync命令 linux同步資料命令

格式: sync 

用途:更新 i-node 表,並將緩衝檔案寫到硬碟中。

功能:sync命令是在關閉Linux系統時使用的。  使用者需要注意的是,不能用簡單的關閉電源的方法關閉系統,因為Linux象其他Unix系統一樣,在記憶體中快取了許多資料,在關閉系統時需要進行記憶體資料 與硬碟資料的同步校驗,保證硬碟資料在關閉系統時是最新的,只有這樣才能確保資料不會丟失。一般正常的關閉系統的過程是自動進行這些工作的,在系統執行過 程中也會定時做這些工作,不需要使用者干預。 sync命令是強制把記憶體中的資料寫回硬碟,以免資料的丟失。使用者可以在需要的時候使用此命令。

sync 命令執行 sync 子例程。如果必須停止系統,則執行 sync 命令以確保檔案系統的完整性。sync 命令將所有未寫的系統緩衝區寫到磁碟中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫對映檔案。


Sync命令 在用reboot命令啟動unix系統後,系統提示出錯資訊,部分應用程式不能正常工作。經仔細檢查系統檔案,並和初始的正確備份進行比較,發 現某些檔案確實被破壞了,翻來覆去找不到檔案遭破壞的原因,最後想到了寫快取命令——sync,在reboot前沒有執行sync命令,導致了系統檔案的 改變而不能正常工作。     sync命令的作用是,將有關檔案系統的儲存器常駐資訊送入物理介質內。在暫停系統之前,比如要重新啟動機器,一定要去執行sync命令。 unix系統執行經驗表明,為確保可靠起見,應執行兩遍sync命令,這是因為sync命令完成時,並不保證資訊實際寫到了磁碟上,雖然已經執行了一遍這 個命令。在執行sync命令以後,要等待磁碟工作燈滅了(假定有系統工作指示燈的話),再去真正暫停機器的執行或啟動機器。 unix系統遭受破壞是隨時都可能發生的事情,因此在啟動機器或關機之前一定要執行sync命令。記住在任何情況下,慎重地執行sync命令決不會有任何壞處   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命令強制把磁碟緩衝的所有資料寫入磁碟,就很能說明問題。  所以要 cp 完之後要執行 sync 命令將緩衝區的內容寫到磁碟中,然後再umount 就不會出現延時了. 經驗證,採用此方法,延遲寫入問題可以解決