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 就不會出現延時了.
經驗證,採用此方法,延遲寫入問題可以解決
摘自 loongene的部落格
Linux sync命令的作用
adb shell sync 寫快取命令 sync 在用reboot命令啟動unix系統後,系統提示出錯資訊,部分應用程式不能正常工作。經仔細檢查系統檔案,並和初始的正確備份進行比較,發現某些檔案確實被破壞了,翻來覆去找不到檔案遭破壞的原因,最後想到了寫快取命令 sync,在reboot前沒有執行s...
Linux sync命令的作用
資料同步寫入磁碟 sync 在linux系統中,為了加快資料的讀取速度,所以在預設的情況中,某些已經載入記憶體中的資料將不會直接被寫回硬碟,而是先快取在記憶體當中,如此一來,如果乙個資料被你重複的改寫,那麼由於他尚未被寫入硬碟中,因此可以直接由記憶體當中讀取出來,在速度上一定是快上相當多的!不過,如...
Linux sync命令的作用
sync命令 在用reboot命令啟動unix系統後,系統提示出錯資訊,部分應用程式不能正常工作。經仔細檢查系統檔案,並和初始的正確備份進行比較,發現某些檔案確實被破壞了,翻來覆去找不到檔案遭破壞的原因,最後想到了寫快取命令 sync,在reboot前沒有執行sync命令,導致了系統檔案的改變而不能...