sync命令 linux同步資料命令

2021-06-21 09:23:51 字數 1679 閱讀 7320

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 就不會出現延時了.

經驗證,採用此方法,延遲寫入問題可以解決

sync同步器框架

countdownlatch cyclicbarrier semaphore使用過嗎?概念 讓一些執行緒阻塞直到另一些執行緒完成一系列操作才被喚醒 來自 主要方法 public class countdownlatchdemo string.valueof i start countdownlatc...

學習golang之同步原語sync包

資源競爭 以上被加鎖保護的 sum i 片段又稱為臨界區。這個示例開啟了 10 個協程,它們同時讀取 sum 的值。因為 readsum 函式並沒有任何加鎖控制,所以它不是併發安全的,即乙個 goroutine 正在執行 sum i 操作的時候,另乙個 goroutine 可能正在執行 b sum ...

linux 同步時間命令

linux的時間分為system clock 系統時間 和real time clock 硬體時間,簡稱rtc 檢視系統時間的命令 date 設定系統時間的命令 date set 月 日 年 時 分 秒 例 date set 10 11 10 10 15 檢視硬體時間的命令 hwclock 設定硬體...