设置整个系统的文件大小限制

设置整个系统的文件大小限制

我试图将整个系统的文件限制设置为 10GB。当ulimit -f运行时,我回来unlimited.

运行时ulimit -a,我看到文件大小的单位是blocks.这些如何转换为字节?

答案1

在 Bash 中,默认为 1024 字节,但 POSIX 模式下为 512 字节(手动的):

如果没有给出选项,则-f假定。值以 1024 字节为增量,除了[其他一些]和 ,在 POSIX 模式下(请参阅 Bash POSIX 模式),-c-f,以 512 字节增量。

(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

相关内容