web-dev-qa-db-ja.com

Linuxでcifs / smb共有上のファイルの作成時間を取得する方法は本当にありませんか?

私はbashバックアップスクリプトで恥ずかしいほど遠くまで進んでいて、何か大きなものを見逃しています。 ext3ファイルシステムが作成日を追跡しないことは知っていますが、ext3内でファイルをコピーすると、statで確認できるように変更された時刻が更新されます(これは機能します)。ただし、ファイルが1つのWindowsサーバーから別のサーバー(smb/cifsを介してマウントされている)にコピーされた場合、テストから、変更された時間は更新されません。私はfindを使用してcifs共有の検索を行っています。 「find」を使用して、Linuxからcifs共有を介して新しいファイルが作成されたことを検出する方法は本当にありませんか?

また、私はrsyncに非常に精通しており、この状況ではrsyncの制限によりオプションとして除外されています。検索にrsyncを使用して、結果をアクション(gzip)にパイプしようと思っていましたが、サブシェルはばかげていると思います。もちろん、間違っている可能性があります。任意の提案をいただければ幸いです。詳細を提供することはできますが、私の調査からはそれが不可能だと思います。

6
kiwisan

Linuxカーネルは、数年前からxstat(2)システムコールを行ってきました。 RedHatのDavidHowellsが多くの作業を行いました。 xstat(2)を使用すると、それをサポートするいくつかのファイルシステムからファイルの作成時刻(LinuxおよびBSDの世界では「誕生時刻」または「誕生時刻」と改名されることがあります)を取得できます。 EXT4(ディスクに作成タイムスタンプがあります)およびCIFS(DOS/OS/2/Windowsの伝統により、何十年にもわたってファーストクラスの市民として作成タイムスタンプをサポートしてきました)。 M. Howellsは、システムコールに付随するCIFSパッチに取り組みました。

OpenSolarisとBSDは、実際にはstat(2)システムコールに_st_birthtim_データを持っており、この機能は、findlsなどのアプリケーションプログラムを介してスクリプト作成者がアクセスできます。 OpenSolaris ls manページでは、crtimeatimemtime、およびctimeがいくつかの場所にあります。同様に、FreeBSD findコマンドには、_-Bmin_、_-Bnewer_、および_-Btime_プライマリがあります。また、Mac OS lsには_-U_オプションがあります。

OpenSolaris、BSD、またはMac OS 10用のスクリプトを作成している場合は、今すぐ作成時間でやりたいことを何でもやり遂げることができます。実際、Windows用に作成している場合は、同じことができます。 Cygwinは_st_birthtim_ 2007年以降 をサポートし、Win32のCreationTimeタイムスタンプを作成します。これは、Windows NTの最初のバージョン以降にあり、WindowsNTがNTFSボリュームとFATボリュームの両方で維持します。 。

ただし、同じことはGNU Linuxの世界では当てはまりません。作成時間機能はまだ GNU coreutils 'ls または GNU findutils 'find 。確かに、それはまだ主流のLinuxカーネルの一部ではありません。問題の一部は、xstat(2)システム呼び出しが、人々が3つを維持したいという迂回で行き詰まったことです。タイムスタンプは、Windows NTカーネルAPIのように4つ持つのではなく、ctimeをダンプしてcrtimeに置き換えます。

2010年のLinusTorvaldsの反応は、「それはすべてまったく役に立たず、人々は名前に同意することすらできない」と「5年待ちましょう」というものでした。

実際、これを読んでいるほとんどの人が知っていると思うのですが、1980年代から世界は「創造の時間」という名前に広く同意しており、私たちはすでに少なくとも25年待っています。これはOS/21.0で使用されている名前です。これはVMSODS-1で使用されている名前です。これは、Windows NT3.5で使用されている名前です。これはSMBで使用される名前です。それは質問で使われている名前です。 ☺

参考文献

17
JdeBP

私はこの質問に本当に答えることはできませんが、少なくとも私はあなたにヒントを与えることができます:クリストファーR.ヘルテルによる本CIFSの実装:一般的なインターネットファイルシステムこれらの2つの非常に興味深いページがあります:

1ページ および 2ページ

彼らはあなたが探している情報を取得することが可能であることを示しているようです。

1
MariusMatutiae