SCPは転送中のファイルをロックしますか?


8

アプリケーションログがAIXサーバーに配置されている状況があります。ログはアプリケーションから継続的に書き込まれており、Windows上のファイルを表示したいユーザーがいます。彼らが行っているのは、WinSCPを使用してファイルをデスクトップに転送し、テキストエディターを使用してファイルを開きます。

scpが転送の期間中ファイルをロックしていて、アプリケーションがファイルへの書き込みを停止しているのではないかと思います。私がこれを信じる理由は、ログファイルが日中のランダムなポイントで成長を停止するためです。

それはおそらく起こっていることですか?


aixタグは大歓迎だと思います。
クリスティアンCiupitu

回答:


8

やってみませんか?大きなファイルのscpを開始lsof /path/to/fileしてから、AIXサーバーで実行し、FD列の内容を確認してください。

lsof manページから:

   FD         is the File Descriptor number of the file or:
                   cwd  current working directory;
                   Lnn  library references (AIX);
                   err  FD information error (see NAME column);
                   jld  jail directory (FreeBSD);
                   ltx  shared library text (code and data);
                   Mxx  hex memory-mapped type number xx.
                   m86  DOS Merge mapped file;
                   mem  memory-mapped file;
                   mmap memory-mapped device;
                   pd   parent directory;
                   rtd  root directory;
                   tr   kernel trace file (OpenBSD);
                   txt  program text (code and data);
                   v86  VP/ix mapped file;
              FD is followed by one of these characters, describing the mode under which the file is open:
                   r for read access;
                   w for write access;
                   u for read and write access;
                   space if mode unknown and no lock
                        character follows;
                   `-' if mode unknown and lock
                        character follows.
              The mode character is followed by one of these lock characters, describing the type of lock applied to the file:
                   N for a Solaris NFS lock of unknown type;
                   r for read lock on part of the file;
                   R for a read lock on the entire file;
                   w for a write lock on part of the file;
                   W for a write lock on the entire file;
                   u for a read and write lock of any length;
                   U for a lock of unknown type;
                   x for an SCO OpenServer Xenix lock on part of the file;
                   X for an SCO OpenServer Xenix lock on the entire file;
                   space if there is no lock.
              See the LOCKS section for more information on the lock information character.
              The FD column contents constitutes a single field for parsing in post-processing scripts.

これを行うと、少なくともLinuxでは、FD列が「3r」であることがわかります。これは、なんらかの読み取りロックがあることを意味しますが、その前の3が何を意味するのかわかりません。


参考までに、ファイルに読み取りロックを設定します。ありがとう!
ThaDon

ああ、実際には小さなrはファイルの一部のみがロックされていることを示しています。おそらくscpは問題ではありません...
ThaDon

1
正しいrは、バイトロックであることを示します。したがって、理論的には、現在送信している部分のみをロックします。しかし、ロックに関するlsofのmanページを読むと、場合によってはロックが正確に報告されない可能性があることも書かれています。大きなテキストファイルがある実験をセットアップしたい場合があります... scpを開始して、echo "blah blah blah" >> textfileのようなことを行います。それがファイルの最後に正常に追加された場合、lsofが報告している内容は正しいと言えます。
3dinfluence 2010年

1

ほとんどのUnixプログラムはロックを使用していないか、ロックを使用している場合は必須ではないので、ロックがログの増加を妨げているのではないかと思います。SCP転送がログの書き込みを遅くしている可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.