Linux豆知識 083
syncコマンド
公開日:2011年06月17日
今回は、キャッシュの内容をディスクに書き込む「syncコマンド」について。
大抵のファイルシステムでは、ハードディスクにデータを書き込む・変更するときに、リアルタイムでハードディスクに書き込みを行っているのではなく、一時的にキャッシュに記録しておき、後でまとめてディスクに書き込む、という仕組みをとっています。これには、ディスクアクセスの頻度を下げることで負担を減らす、ジャーナルという仕組みを成立させる、などの意味があります。
しかしながら、この仕組みのせいで少し困ったことが起こる場合があります。
一番困るのが、停電などなんらかの原因でOSが落ちてしまったときです。キャッシュのデータをファイルシステムに書き込む前にOSが落ちてしまうと、ディスクのデータが整合せず、大きなトラブルの原因になることがあります。
「syncコマンド」は、キャッシュに存在する未処理のデータをディスクに書き込むコマンドです。オプションは必要なく、単に「sync」を実行するだけでファイルへの書き込みが行われます。
大切なのは、「shutdown」コマンドを利用した場合にも、この処理が行われるということです。「reboot」コマンドや「halt」コマンドでも同様です。
この事実を知っておいて下さい。裏を返すと、おかしな方法でシステムを停止した場合、この処理が行われず、データの不整合が起こる場合があるということです。システムの停止・再起動は適切な方法で行いましょう。