SCP có khóa tập tin mà nó đang chuyển không?


8

Có một tình huống trong đó chúng ta có một nhật ký ứng dụng ngồi trên máy chủ AIX. Nhật ký đang được ghi liên tục từ ứng dụng và chúng tôi có người dùng trên Windows muốn xem tệp. Những gì họ đã và đang làm là sử dụng WinSCP để chuyển tệp sang máy tính để bàn của họ và họ mở nó bằng trình soạn thảo văn bản.

Những gì tôi nghĩ có thể xảy ra là scp đang khóa tệp trong suốt thời gian chuyển và ứng dụng không còn có thể ghi vào tệp. Lý do tôi tin rằng đây là tệp nhật ký sẽ ngừng phát triển tại các điểm ngẫu nhiên trong ngày.

Có phải đó là những gì có thể đang xảy ra?


Tôi nghĩ rằng một aixthẻ sẽ được hoan nghênh.
Cristian Ciupitu

Câu trả lời:


8

Tại sao bạn không thử điều này. Bắt đầu scp'ing một tệp lớn sau đó chạy lsof /path/to/filetrên máy chủ AIX và xem cột FD nói gì.

Từ trang 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.

Nếu bạn làm điều này, ít nhất là trên Linux, bạn sẽ thấy cột FD là "3r", có nghĩa là nó có một số loại khóa đọc nhưng tôi không chắc 3 cái trước nó có nghĩa gì.


FYI, yup nó đặt khóa đọc trên tập tin! Cảm ơn!
ThaDon

Ồ, thực ra r nhỏ chỉ một khóa trên một phần của tập tin, có lẽ scp không phải là vấn đề sau đó ...
ThaDon

1
Điều đó đúng r nhỏ chỉ ra rằng đó là khóa byte. Vì vậy, trên lý thuyết, nó chỉ khóa phần mà nó hiện đang gửi. Nhưng nếu bạn đọc trang lsof man về khóa, nó cũng nói rằng nó có thể không báo cáo khóa chính xác trong một số trường hợp. Bạn có thể muốn thiết lập một thử nghiệm trong đó bạn có một tệp văn bản lớn ... bắt đầu tìm kiếm nó và sau đó làm một cái gì đó như echo "blah blah blah" >> textfile. Nếu điều đó thêm thành công vào cuối tập tin thì tôi sẽ nói rằng những gì lsof đang báo cáo là chính xác.
3dinfluence

1

Hầu hết các chương trình Unix không sử dụng khóa hoặc khi họ sử dụng nó, điều đó không bắt buộc, vì vậy tôi nghi ngờ việc khóa đang ngăn nhật ký của bạn phát triển. Nhiều khả năng việc chuyển SCP đang làm chậm việc ghi nhật ký.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.