Làm cách nào để đặt giới hạn kích thước tệp cho một thư mục?


8

Tôi có một thư mục trên hệ thống của mình, được sử dụng cho một lý do cụ thể bởi các ứng dụng và người dùng, nhưng tôi không muốn kích thước của nó vượt quá 2GB, có cách nào để thiết lập một giới hạn nào đó không cho phép kích thước tập tin vượt quá số tiền đó hoặc bất kỳ số tiền nào khác tôi quyết định đặt cho nó trong tương lai?

Khi vượt quá giới hạn kích thước, nó sẽ hoàn tác thay đổi cuối cùng (mặc dù cần có tùy chọn để nó dừng hoạt động và không quan tâm nếu một nửa tệp được sao chép và để lại ở đó) và sau đó hiển thị cảnh báo cho người dùng.

Tôi đang chạy Ubuntu Gnome 16.10 với Gnome 3.22.



@JacobVlijm: Bây giờ tôi sẽ chấp nhận câu trả lời của muru, nhưng nếu bạn có thể cung cấp một câu trả lời tốt hơn thì tôi rất vui lòng chấp nhận câu trả lời đó.

Câu trả lời:


19

Hạn ngạch hệ thống tập tin thông thường trên ext4 là cho mỗi người dùng / nhóm, không phải mỗi thư mục. ZFS có thể sắp xếp thiết lập hạn ngạch thư mục, bằng cách tạo một hệ thống tệp có kích thước cố định ngoài một khối ZFS. Tuy nhiên, một mẹo đơn giản là tạo một tệp 2 GB, tạo một hệ thống tệp trên đó và gắn kết nó vào thư mục mong muốn:

$ touch 2gbarea
$ truncate -s 2G 2gbarea
$ mke2fs -t ext4 -F 2gbarea
mke2fs 1.43.3 (04-Sep-2016)
Discarding device blocks: done                            
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: bf1b2ee8-a7df-4a57-9d05-a8b60323e2bf
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

$ sudo mount 2gbarea up    
$ df -h up
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0      2.0G  6.0M  1.8G   1% /home/muru/up

Trong mọi trường hợp, hạn ngạch hệ thống tập tin (hoặc phương pháp như thế này) không thân thiện với người dùng như bạn muốn. Phương pháp này linh hoạt một chiều, trong đó bạn có thể tăng kích thước trực tuyến , nhưng giảm nó sẽ khó.

Các lệnh:

  • touch: touch 2gbareatạo một tập tin trống có tên 2gbarea.
  • truncate: truncateđược sử dụng để thay đổi kích thước tệp (trong trường hợp này, tôi thay đổi kích thước 2gbareatệp hiện tại trống thành 2 GB bằng cách sử dụng -s 2G).
  • mke2fs: mke2fstạo hệ thống tập tin ext2 / 3/4 (trong trường hợp này là ext4).
  • mount gắn kết hệ thống tập tin trên thư mục nhất định.
  • df được sử dụng để liệt kê việc sử dụng hệ thống tập tin.

1
Một người mới có thể bị nhầm lẫn với các lệnh. Mục đích của họ nên được giải thích / liên kết đến?
Rohitt Vashishtha

@RohittVashishtha tốt hơn?
muru

Có cách nào để khiến nó khởi chạy một thông báo cảnh báo bật lên nhỏ khi đạt đến hạn ngạch không?

@ParanoidPanda "nó" là gì? Tôi nghĩ trình duyệt tập tin sẽ phàn nàn khi không còn chỗ trống.
muru

@muru: Chủ yếu tôi không nghĩ nó sẽ là trình duyệt tệp sẽ ghi vào vị trí này, nhiều khả năng là các ứng dụng cụ thể khác. Có cách nào để "xem" thư mục đó để khi nó đạt đến dung lượng của nó, một cảnh báo đồ họa bật lên để cảnh báo người dùng không?
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.