전체 시스템의 파일 제한을 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
특정 파티션의 블록 수를 확인 하고 파티션 크기를 바이트 단위로 확인할 수 있습니다. 블록으로 나눈 바이트 수는 블록의 바이트 크기를 제공합니다.lsblk
df
예를 들어 내 데스크탑에서는 다음과 같습니다.
$ 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