web-dev-qa-db-ja.com

ディレクトリのファイルサイズ制限を設定する方法は?

システムに特定の理由でアプリケーションとユーザーが使用するディレクトリがありますが、そのサイズが2GBを超えることを許可したくありません。何らかの制限を設定する方法はありますか?ファイルサイズがそれを超えることを許可するか、将来設定することを決定した他の量を許可しますか?

サイズの制限を超えた場合、最後の変更を元に戻す必要があります(ただし、操作を停止するだけで、ファイルの半分がコピーされてそこに残っているかどうかを気にする必要はありません)。ユーザー。

Ubuntu GNOME 16.10とGNOME 3.22を実行しています。

8
user364819

Ext4の通常のファイルシステムクォータは、ディレクトリごとではなく、ユーザーごとまたはグループごとです。 ZFSは、ZFSボリュームから固定サイズのファイルシステムを作成することにより、ディレクトリクォータを並べ替えて設定できます。ただし、簡単なトリックは、2GBのファイルを作成し、その上にファイルシステムを作成し、目的のフォルダーにマウントすることです。

$ 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

いずれにせよ、ファイルシステムのクォータ(またはこのようなメソッド)は、必要なほどユーザーフレンドリーではありません。この方法は一方向に柔軟性があり、サイズonlineを増やすことができますが、サイズを小さくすることは困難です。

コマンド:

  • touchtouch 2gbareaは、2gbareaという名前の空のファイルを作成します。
  • truncatetruncateを使用してファイルのサイズを変更します(この場合、2gbareaを使用して現在空の-s 2Gファイルを2 GBにサイズ変更します)。
  • mke2fsmke2fsはext2/3/4ファイルシステム(この場合はext4)を作成します。
  • mount 指定されたディレクトリにファイルシステムをマウントします。
  • df は、ファイルシステムの使用状況をリストするために使用されます。
16
muru