web-dev-qa-db-ja.com

Sambaで高精度のタイムスタンプ(1秒より良い)を取得するにはどうすればよいですか?

簡単なテストを行ったところ、以下の結果が得られました。恐ろしい時間分解能とは何ですか?私がそれをより良くすることができる方法はありますか?

creation
129971441605098285
mod
129971442166583272
a.ToFileTimeUtc()
129971442170000000
b.ToFileTimeUtc()
129971442170000000

ToFileTimeUtc(1601年1月1日以降の100nsティックの数を返す)の結果は、タイムスタンプが完全な精度で格納されるのではなく、最も近い秒に丸められていることを示しています。

UbuntuでSambaを使用しています。どこかから設定ファイルを取得しました。 Linuxがsamba経由でマウントしたNTFSファイルシステムにファイルを転送しています

[global]
netbios name = toltec
workgroup = METRAN
security = user
wins support = yes
preferred master = yes
os level = 65


[homes]
comment = %u's Home Directory
browsable = no
read only = no
3
user4069

長いコメントチェーンから、ntfs-3g(またはおそらくFuse)は100nsのタイムスタンプを完全にサポートしていないか、少なくともUbuntu12.04のバージョンはサポートしていないようです。 ランダムなフォーラムスレッド があり、Fuse 2.9が必要であることを示していますが、 buntu 12.04には2.8があります

Ubuntu12.10にはFuse2.9がありますが、長期サポートリリースではありません。したがって、おそらくそれにアップグレードしたくないでしょう。

もう1つの方法は、ext4などのUbuntu12.04で高解像度のタイムスタンプをサポートするファイルシステムに切り替えることです。ディスクをSambaサーバーから切断してWindowsマシンに接続する予定がない限り、特にSambaで拡張属性を有効にする場合は、NTFSよりもこれがおそらく良い選択です。

1
derobert