LinuxサーバーでNFS経由で0バイトのファイルをコピー(CPコマンド)して元あるファイルを

上書きしても、更新日時が変わりません。
何故でしょうか。

上書きされていないのか、どうかはわかりませんが、
コピー先ディレクトリにファイルが無い状態でコピーを実施すると
ファイルは作成されます。

OS:RHL

回答の条件
  • URL必須
  • 1人50回まで
  • 登録:
  • 終了:2008/07/24 09:53:25
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント35pt

確認をお願いします。


ファイルやディレクトリの作成・更新・参照日時を調べるには」に書いてあることですが、ファイルの作成日時ではなく、更新日時が変化しないのですね?


また、ローカルでゼロ長ファイルを上書きした場合は、ただしく更新日時が書き換わりますか?

id:pinkymonk

ありがとうございます。

はい、更新日時が変化しません。

ただし、-aオプションを付けると変化します。

ローカルで上書きした場合は、正しく更新日時が書き換わります。

2008/07/23 09:45:38

その他の回答2件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633ここでベストアンサー

ポイント35pt

確認をお願いします。


ファイルやディレクトリの作成・更新・参照日時を調べるには」に書いてあることですが、ファイルの作成日時ではなく、更新日時が変化しないのですね?


また、ローカルでゼロ長ファイルを上書きした場合は、ただしく更新日時が書き換わりますか?

id:pinkymonk

ありがとうございます。

はい、更新日時が変化しません。

ただし、-aオプションを付けると変化します。

ローカルで上書きした場合は、正しく更新日時が書き換わります。

2008/07/23 09:45:38
id:khoshi3 No.2

回答回数71ベストアンサー獲得回数12

ポイント23pt

完全に推測で申し訳ありません、見当違いの回答でしたらごめんなさい。

もしかすると、更新日時(ls -lで表示される)ではなく、最終アクセス日時(ls -lu)のほうが変わらないのではないでしょうか?

手元でテストしてみると、cpで既存ファイルを上書きしただけでは最終アクセス日時は変更されませんでした。(当たり前ですがコピー後にアクセスすると最終アクセス日時も変更されます。これは、ファイルサイズが0バイトに限りませんし、NFS先でもローカルファイルシステムへのcpでも同じです。)

ちなみに、NFSクライアント側のmountオプションで「-o noatime」を指定していても、最終アクセス日時は更新されません。(こちらは本当にアクセスしても最終アクセス日時は変更されません):

-o オプション: noatime:

そのファイルシステム上では inode のアクセス時間を更新しない (例えばニュースサーバーをスピードアップしたいときなどに、ニューススプールへのアクセス速度を向上させるために用いられる)。

id:pahoo No.3

回答回数5960ベストアンサー獲得回数633

ポイント22pt

クライアントOSは何でしょうか?

手元にRHLが無いので推測になってしまいますが、サーバとクライアントでNFSのバージョン不一致が起きているのではないでしょうか。

NFS起動時オプションで、nfsver を 2, 3, 4 と変えてマウントしてみてください。

id:pinkymonk

ありがとうございます。

NFSのバージョンは

サーバー ver2

クライアント ver3

ファイルシステムは

サーバー ext2

クライアント ext3

です。nfsverオプション試してみます。

2008/07/23 13:10:35

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません