Thắc mắc về bắt sự kiện trong python

Mấy ứng dụng đó nó mở tập tin, đọc xong rồi đóng ngay tức khắc (ứng dụng vẫn mở). Sự kiện CLOSE_NOWRITE xảy ra là đúng rồi.

5 Likes

dạ cho em hỏi thêm này tí ạ, khi em dùng pyinotify em giám sát một tập tin cụ thể nào đó, thì khi em chỉnh sửa nội dung file đó xong, em save lại. thì em nhận dc event DELETE_SELF? tại sao vậy ạ, theo em phải nhận được event Modify chứ ạ :3 bác giải thích giúp em ạ, em cảm ơn ạ.

Cái này thì tùy vào ứng dụng.
Để đảm bảo an toàn nội dung cho tập tin thì sự kiện DELETE_SELF xảy ra là đúng!

  1. Một số ứng dụng sẽ ghi trực tiếp vào tập tin (MODIFY).
  2. Số còn lại sẽ ghi ra một tập tin tạm (tên có thể ngẫu nhiên) trước. Sau khi ghi xong toàn bộ nội dung mới, sẽ tiến hành di chuyển và ghi đè lên tập tin gốc (xóa tập tin gốc, di chuyển tập tin mới và đổi về tên gốc).

Biết vì sao một số ứng dụng làm vậy không?
Giả sử trong khi ghi nội dung mới trực tiếp vào tập tin gốc mà có lỗi hoặc sự cố vô tình xảy ra (máy hết pin/cúp nguồn, ứng dụng bị tắt đột ngột). Nội dung sẽ thành ra mới cũng chẳng ra mới mà cũ thì cũng chẳng còn là cũ. Sẽ gây hại cực kì, nhất là với tập tin lớn.

6 Likes

Đa tạ bác ạ @@ bác thông não cho em nhiều quá ạ nhưng cho em hỏi thêm vấn đề này ạ, tại sao sau khi thông báo event delete_self thì em lại không nhận được bất kì event nào hết nữa ạ ví dụ em mở tập tin lại thì cũng ko nhận dc event open @@

Khi DELETE_SELF xuất hiện cũng là chấm dứt theo dõi theo tên đó luôn, phải thêm lại thôi.

5 Likes

Cái này là về phần bảo mật ạ, thấy ai cũng dùng linux

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?