web-dev-qa-db-ja.com

1つのパーティションのみを同期する方法はありますか?

すべてのパーティションではなく1つのパーティションのみを同期する方法はありますか?

「sync/dev/sdc1」のようなもの。

17
HandyGandy

同期オプションで再マウントしてから、非同期で再マウントできます。

mount -o remount,sync /mountpoint
mount -o remount,async /mountpoint

再マウントオプションを使用しても、再マウントされたファイルシステムを使用するプロセスが混乱することはありません。

10
Michał Šrajer

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オプションを使用してパーティションをマウントすることが解決策になる場合があります。

3
llua

メモリ内のデータをディスクにフラッシュするsyncユーティリティを意味する場合、答えはノーです。これは、syncがシャットダウンまたは再起動の手順中に一般的に使用されるためです。この場合、データをディスクに安全に書き込むことが推奨され、操作の実際のターゲットはディスクではなくメモリであり、 RAMから安全な場所にデータをバッファリングしました。ディスクはデータが最終的に置かれる場所です。

2
Tim Kennedy

Btrfsの場合:

btrfs filesystem sync /path/under/mountpoint
0
Tom Hale