Điều gì có thể sai nếu / var / tmp nằm trên hệ thống tệp tạm thời?


8

Tôi đã đọc rằng tôi không nên gắn kết / var / tmp như một hệ thống tệp tạm thời (ví dụ: như tmpfs), vì các tệp trong / var / tmp không được xóa khi khởi động lại. Đúng không?

Giả sử tôi đã mount / var / tmp dưới dạng tmpfs, vì vậy nội dung của nó sẽ bị xóa trong mỗi lần khởi động lại. Điều đó sẽ là xấu? Nếu có, điều gì có thể đi sai? Nó sẽ tệ đến mức nào?


@JMore, tôi đang hỏi về /var/tmp, không phải về /tmp. Tôi xin lỗi nếu điều này không rõ ràng.
DW

Câu trả lời:


11

Các tập tin trong /var/tmpdự kiến ​​sẽ được liên tục trên các lần khởi động lại. Từ FHS :

Thư mục / var / tmp được cung cấp cho các chương trình yêu cầu các tệp hoặc thư mục tạm thời được bảo tồn giữa các lần khởi động lại hệ thống. Do đó, dữ liệu được lưu trữ trong / var / tmp liên tục hơn dữ liệu trong / tmp.

Các tệp trong /var/tmpthường là các tệp bộ đệm hoặc các tệp tạm thời không nên biến mất trong trường hợp mất điện đột ngột. Họ không thể được sống mãi mãi. Nó là phổ biến để xóa các tập tin cũ từ /var/tmptrên một lịch trình.

Dưới đây là một số ví dụ về /var/tmpcách sử dụng:

  • Một số triển khai của vi (ví dụ nvi) đặt các tệp khôi phục sự cố của chúng vào /var/tmp. Nếu đó là một hệ thống tập tin tạm thời, bạn sẽ không có cơ hội phục hồi bất cứ điều gì. Vim đặt các tệp khôi phục sự cố của nó trong cùng thư mục với tệp đang được chỉnh sửa.
  • Tôi sử dụng plugin Firefox cho phép tôi chỉnh sửa các trường văn bản trong Vim. Để thực hiện điều này, plugin tạo một tệp tạm thời /var/tmp( /tmpmặc dù là mặc định) và chuyển tệp cho Vim. Nếu máy tính của tôi mất điện trong khi tôi đang sử dụng tính năng này, văn bản của tôi sẽ an toàn và âm thanh /var/tmp.
  • Các công cụ chỉnh sửa văn bản như exsudoeditđặt các tệp tạm thời vào /var/tmp. Nếu /var/tmpđược gắn dưới dạng tmpfs, bạn sẽ có nguy cơ mất dữ liệu do mất điện đột xuất.
  • Các git-archive(1)trang có ví dụ sau đây.

    kho lưu trữ git --format = tar --prefix = rác / ĐẦU | (cd / var / tmp / && tar xf -)
    Tạo một kho lưu trữ tar chứa nội dung của cam kết mới nhất trên
    nhánh hiện tại và trích xuất nó trong thư mục / var / tmp / rác.

    Có thể /var/tmpthư mục đã được chọn để nội dung lưu trữ được trích xuất sẽ không bị mất do mất điện đột ngột.

  • /var/tmpđược xóa định kỳ nhưng không bao giờ bất ngờ, nên việc lưu trữ nhật ký tạm thời và cơ sở dữ liệu thử nghiệm ở đó là điều phổ biến. Ví dụ: trong arpd trang chủ, /var/tmpđược sử dụng làm vị trí của cơ sở dữ liệu kiểm tra vì một số ví dụ.

    arpd -b /var/tmp/arpd.db
    Bắt đầu arpd để thu thập ARP vô cớ, nhưng không gây rối với chức năng kernel.

Tóm lại, hệ thống của bạn không có khả năng chịu thiệt hại nghiêm trọng nếu bạn gắn kết /var/tmpdưới dạng tmpfs. Làm như vậy có thể là không mong muốn mặc dù bạn sẽ có nguy cơ mất thông tin cho sự cố mất điện và khởi động lại.



Cảm ơn bạn. Tôi đã đọc thông số FHS và tôi hiểu rằng về nguyên tắc, các ứng dụng có thể sử dụng / var / tmp để lưu trữ nội dung - Tôi tò mò hơn về các ví dụ cụ thể về việc nó có thể gặp vấn đề như thế nào trong thực tế.
DW

@DW: Tôi sẽ cung cấp thêm ví dụ.

2
@DW Cũng /var/tmpcó khả năng lớn hơn /tmp, vì vậy một số ứng dụng dự kiến ​​sẽ đặt các tệp tạm thời lớn ở đó. Nếu /var/tmptrên tmpfs, hệ thống của bạn có thể hết bộ nhớ hoặc bắt đầu đập.
Gilles 'SO- ngừng trở nên xấu xa'
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.