すべてのパーティションではなく1つのパーティションのみを同期する方法はありますか?
「sync/dev/sdc1」のようなもの。
同期オプションで再マウントしてから、非同期で再マウントできます。
mount -o remount,sync /mountpoint
mount -o remount,async /mountpoint
再マウントオプションを使用しても、再マウントされたファイルシステムを使用するプロセスが混乱することはありません。
1つのファイルのデータ(およびメタデータ)を同期する標準関数があります: fsync
。これにアクセスするための標準または一般的なShellコマンドはありませんが、Perlのsync
メソッドを IO::Handle
:
Perl -MIO::File -e 'new IO::File($ARGV[0], "r+")->sync()' filename
1つのパーティションのみを同期するための標準または共通の機能やシェルコマンドはありません。
最近のLinuxシステム には、 syncfs
システムコールがあります(カーネル2.6.39で導入され、 glibc 2.14)以降に公開されています )。このシステムコールは、coreutilsまたはutil-linuxでまだ公開されていないと思います。
sync
オプションを使用してパーティションをマウントすることが解決策になる場合があります。
メモリ内のデータをディスクにフラッシュするsync
ユーティリティを意味する場合、答えはノーです。これは、sync
がシャットダウンまたは再起動の手順中に一般的に使用されるためです。この場合、データをディスクに安全に書き込むことが推奨され、操作の実際のターゲットはディスクではなくメモリであり、 RAMから安全な場所にデータをバッファリングしました。ディスクはデータが最終的に置かれる場所です。
Btrfsの場合:
btrfs filesystem sync /path/under/mountpoint