lsof - tuổi của tập tin


8

Lệnh * nix lsofcung cấp cho bạn một danh sách các tệp đang mở. Có ai biết một cách mà cũng sẽ liệt kê một tệp cụ thể đã được mở trong bao lâu không? Hoặc bằng cách sử dụng lsofhoặc bất kỳ lệnh nào khác. Tôi đang sử dụng CentOS 5.3 và thật không may, tôi không thể cài đặt các kho lưu trữ bổ sung vì vậy tôi phải làm việc từ các kho lưu trữ mặc định của CentOS.

Cảm ơn


1
Tại sao bạn cần điều đó? Hiện tại tôi không biết làm thế nào để đạt được điều đó với lsofbất kỳ hoặc bất kỳ tiện ích nào khác, vì vậy có thể có một giải pháp thay thế cho vấn đề của bạn ...
xin lỗi

Có một vấn đề cụ thể về ứng dụng (trong nhà) và một trong các quy trình của chúng tôi là giữ tệp mở, nhưng tôi không thể xác định liệu nó có làm điều này mỗi khi nó được gọi hay không, do đó tôi muốn xem tuổi của mỗi tệp đang mở, tức là tệp1 được mở từ 2012-01-01 00:00:00, file2 mở từ 2012-01 / 02 00:00:00, v.v.

2
Có hai điều tôi có thể nghĩ đến: strace -e open,close programhoặc valgrindvới --track-fds=yestùy chọn.
plaes

Câu trả lời:


3

Nếu bạn có pid, bạn có thể trực tiếp đăng ký / Proc / $ pid / fd. Nó dường như là nơi mô tả tập tin được tạo ra.

Nếu bạn xem ngày tạo của họ một cách đơn giản ls -lh, có thể bạn sẽ có thể biết một tệp cụ thể đã được mở trong bao lâu.


0

Một - không chính xác đoán - có thể là sử dụng pid được cung cấp bởi lsofvà sử dụng psđể tìm hiểu kể từ khi chương trình mở tệp đang chạy. Điều này tất nhiên chỉ hoạt động đối với các tệp được mở khi bắt đầu chương trình, không phải cho các tệp được mở sau này.

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.