Linux命令 sync - 用于強(qiáng)制被改變的內(nèi)容立刻寫入磁盤

2022-03-21 10:20 更新

sync

用于強(qiáng)制被改變的內(nèi)容立刻寫入磁盤

補(bǔ)充說明

sync命令 用于強(qiáng)制被改變的內(nèi)容立刻寫入磁盤,更新超塊信息。

在Linux/Unix系統(tǒng)中,在文件或數(shù)據(jù)處理過程中一般先放到內(nèi)存緩沖區(qū)中,等到適當(dāng)?shù)臅r(shí)候再寫入磁盤,以提高系統(tǒng)的運(yùn)行效率。sync命令則可用來強(qiáng)制將內(nèi)存緩沖區(qū)中的數(shù)據(jù)立即寫入磁盤中。用戶通常不需執(zhí)行sync命令,系統(tǒng)會(huì)自動(dòng)執(zhí)行update或bdflush操作,將緩沖區(qū)的數(shù)據(jù)寫 入磁盤。只有在update或bdflush無法執(zhí)行或用戶需要非正常關(guān)機(jī)時(shí),才需手動(dòng)執(zhí)行sync命令。

語法

sync(選項(xiàng))

選項(xiàng)

-d, --data             只同步文件數(shù)據(jù),不同步不必要的元數(shù)據(jù)
-f, --file-system      同步包含這些文件的文件系統(tǒng)
--help:顯示幫助;
--version:顯示版本信息。

buffer與cache

  • buffer:為了解決寫磁盤的效率
  • cache:為了解決讀磁盤的效率

linux系統(tǒng)為了提高讀寫磁盤的效率,會(huì)先將數(shù)據(jù)放在一塊buffer中。在寫磁盤時(shí)并不是立即將數(shù)據(jù)寫到磁盤中,而是先寫入這塊buffer中了。此時(shí)如果重啟系統(tǒng),就可能造成數(shù)據(jù)丟失。

sync命令用來flush文件系統(tǒng)buffer,這樣數(shù)據(jù)才會(huì)真正的寫到磁盤中,并且buffer才能夠釋放出來,flush就是用來清空buffer。sync命令會(huì)強(qiáng)制將數(shù)據(jù)寫入磁盤中,并釋放該數(shù)據(jù)對(duì)應(yīng)的buffer,所以常常會(huì)在寫磁盤后輸入sync命令來將數(shù)據(jù)真正的寫入磁盤。

如果不去手動(dòng)的輸入sync命令來真正的去寫磁盤,linux系統(tǒng)也會(huì)周期性的去sync數(shù)據(jù)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)