システム全体のファイルサイズ制限の設定

システム全体のファイルサイズ制限の設定

システム全体のファイル制限を10 GBに設定しようとしています。走るとulimit -f帰ってくるunlimited.

を実行すると、ulimit -aファイルサイズが単位で表示されますblocks。これをバイトに変換するには?

答え1

Bashでは、デフォルトは1024バイトですが、POSIXモードでは512バイトです(手動):

オプションが与えられない場合は-f仮定されます。値は1024バイト単位で増加します。[その他]、POSIXモード(Bash POSIXモードを参照)、-c512-fバイトの増分。

(POSIXはもちろん、512バイトブロックが必要.)

$ bash -c 'ulimit -Sf 1000; 
    head -c1024000 < /dev/zero > /tmp/test && echo ok;
    echo x >> /tmp/test && echo ok'
ok
File size limit exceeded

答え2

またはを使用して、/proc/partitions特定のパーティションのブロック数を確認し、パーティションのサイズをバイト単位で確認できます。ブロックで割ったバイト数は、ブロックのバイトサイズを提供します。lsblkdf

たとえば、私のデスクトップでは次のようになります。

$ cat /proc/partitions
major minor  #blocks  name

   8        0  312571224 sda
   8        1  308392960 sda1
   8        2          1 sda2
   8        5    4175872 sda5
  11        0      19930 sr0
   8       16  244198584 sdb
km0@mkdisplay:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 298.1G  0 disk
├─sda1   8:1    0 294.1G  0 part /
├─sda2   8:2    0     1K  0 part
└─sda5   8:5    0     4G  0 part [SWAP]
sdb      8:16   0 232.9G  0 disk
sr0     11:0    1  19.5M  0 rom
$ python
Python 2.7.13 |Anaconda, Inc.| (default, Sep 22 2017, 00:47:24)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 298.1*1024*1024*1024/312571224.
1024.03040701661

関連情報