Đây là một câu trả lời tôi đã viết cho một câu hỏi trước đó:
Nói chung nếu bạn muốn biết một quy trình / người dùng / tệp đang làm gì mà không phải chạy lsof với nó 24/7, bạn sử dụng audctl.
Giả sử bạn có một kiểm soát kiểm toán kernel-ish gần đây sẽ là một hoạt động đơn giản. (Đây là trong Debian-fu, nếu bạn đang chạy Red Hat dịch phù hợp)
# apt-get install auditd
Đảm bảo rằng nó đang chạy (trạng thái /etc/init.d/auditd).
auditctl -a entry,always -F arch=b64 -S open -F pid=<process id>
Thay thế b64 bằng b32 nếu bạn đang chạy vòm 32 bit, mở có thể được thay thế bằng bất kỳ cuộc gọi hệ thống nào hoặc từ 'tất cả'
Để biết thêm chi tiết trang man Audctl.
Bạn có thể sử dụng phương pháp này và yêu cầu nó theo dõi cuộc gọi hệ thống 'hủy liên kết'.
Tham số -w rất hữu ích để xem các tập tin / thư mục, nhưng trang man giải thích có những cảnh báo.
-w path Chèn đồng hồ cho đối tượng hệ thống tệp tại đường dẫn. Bạn không thể chèn đồng hồ vào thư mục cấp cao nhất. Điều này bị cấm bởi kernel. Ký tự đại diện cũng không được hỗ trợ và sẽ tạo cảnh báo. Cách mà đồng hồ hoạt động là bằng cách theo dõi inode bên trong. Điều này có nghĩa là nếu bạn đặt một chiếc đồng hồ trên một thư mục, bạn sẽ thấy những gì dường như là sự kiện tệp, nhưng nó thực sự chỉ là việc cập nhật dữ liệu meta. Bạn có thể bỏ lỡ một vài sự kiện bằng cách làm điều này. Nếu bạn cần xem tất cả các tệp trong một thư mục, bạn nên đặt một đồng hồ riêng lẻ trên mỗi tệp. Không giống như các quy tắc kiểm toán tòa nhà, đồng hồ không ảnh hưởng đến hiệu suất dựa trên số lượng quy tắc được gửi đến kernel.