linux如何限制特定文件大小

linux如何限制特定文件大小,第1张

1、创建一个指定大小的磁盘镜像文件:dd if=/dev/zero of=/root/disk.img bs=2M count=10。这样就创建了一个大小为20M的磁盘镜像。

2、挂载为设备:losetup /dev/loop0 /root/disk.img

3、格式化设备:mkfs.ext3 /dev/loop0

4、挂载为文件夹

复制内容到剪贴板

mkdir /test

mount -t ext3 /dev/loop0 /test

linux的ext3文件系统一级子目录的个数默认为31998(个),准确地说是32000个。

Linux为了cpu的搜索效率而规定的,要想改变数目限制需要重新编译内核。在kernel代码中有这样的:

include/linux/ext2_fs.h:#define EXT2_LINK_MAX 32000

include/linux/ext3_fs.h:#define EXT3_LINK_MAX 32000

什么说31998个呢?这是因为mkdir创建一个目录时,目录下默认就会创建两个子目录的,一个是.目录(代表当前目录),另一个是..目录(代表上级

目录)。这两个子目录是删除不掉的,“ rm . ” 会得到“rm: cannot remove `.' or

`..'”的提示。所以32000-2=31998。

ext3文件系统下单个目录里的最大文件数无特别的限制,是受限于所在文件系统的inode数。

在一个目录下,touch了100万个文件是没有问题的。但是肯定会受到所在文件系统的inode数的限制。

df -i /dev/sdaX或者使用tune2fs -l /dev/sdaX或者dumpe2fs -h /dev/sdaX查看可用inode数,后两个命令输出结果是一样的,但是跟df所得出的可用inode数会有些误差。

网上有两种解决inode数限制的办法如下

2.1 重新mkfs,mkfs时将inode数调的多一些(根据你fs中文件的总数而定),块尺寸调得小一些(根据每个文件的平均大小而定)

2.2

使用loopback文件系统临时解决:在/usr中(也可以在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个文件系统

中,并将它mount到/usr下合适的位置。这样可以大大减少你/usr中的文件数目。但是系统性能会有点损失。

ls-l/ls-aldu-b/du-klinux的du命令1.简介du(showdiskuseage)查看磁盘使用情况2.语法du[-abcDhHklmsSx][-L][-X][--block-size][--exclude=][--max-depth=][--help][--version][目录或文件]常用参数:-a或-all为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。-b或-bytes显示目录或文件大小时,以byte为单位。-c或–total除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。-D或–dereference-args显示指定符号连接的源文件大小。-h或–human-readable以K,M,G为单位,提高信息的可读性。-H或–si与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。-k或–kilobytes以1024bytes为单位。-l或–count-links重复计算硬件连接的文件。-L或–dereference显示选项中所指定符号连接的源文件大小。-m或–megabytes以1MB为单位。-s或–summarize仅显示总计,即当前目录的大小。-S或–separate-dirs显示每个目录的大小时,并不含其子目录的大小。-x或–one-file-xystem以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。-X或–exclude-from=在指定目录或文件。–exclude=略过指定的目录或文件。–max-depth=超过指定层数的目录后,予以忽略。–help显示帮助。–version显示版本信息。3.du命令使用示例1>要显示一个目录树及其每个子树的磁盘使用情况du/home/linux这在/home/linux目录及其每个子目录中显示了磁盘块数。2>要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况du-k/home/linux这在/home/linux目录及其每个子目录中显示了1024字节磁盘块数。3>以MB为单位显示一个目录树及其每个子树的磁盘使用情况du-m/home/linux这在/home/linux目录及其每个子目录中显示了MB磁盘块数。4>以GB为单位显示一个目录树及其每个子树的磁盘使用情况du-g/home/linux这在/home/linux目录及其每个子目录中显示了GB磁盘块数。5>查看当前目录下所有目录以及子目录的大小:du-h.“.”代表当前目录下。也可以换成一个明确的路径-h表示用K、M、G的人性化形式显示6>查看当前目录下user目录的大小,并不想看其他目录以及其子目录:du-shuser-s表示总结的意思,即只列出一个总结的值du-h–max-depth=0user–max-depth=n表示只深入到第n层目录,此处设置为0,即表示不深入到子目录。7>列出user目录及其子目录下所有目录和文件的大小:du-ahuser-a表示包括目录和文件8>列出当前目录中的目录名不包括xyz字符串的目录的大小:du-h–exclude=’*xyz*’9>想在一个屏幕下列出的关于user目录及子目录大小的信息:du-0huser-0(杠零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息。10>只显示一个目录树的全部磁盘使用情况du-s/home/linux-------------------------------------------------------------------------------------------------------------------------------------------------------------------LinuxLS命令详细介绍lsls命令可以说是linux下最常用的命令之一。它有众多的选项,其中有很多是很有用的,你是否熟悉呢?下面列出了ls命令的绝大多数选项。-a列出目录下的所有文件,包括以.开头的隐含文件。-b把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。-c输出文件的i节点的修改时间,并以此排序。-d将目录象文件一样显示,而不是显示其下的文件。-e输出时间的全部信息,而不是输出简略信息。-f-U对输出的文件不排序。-g无用。-i输出文件的i节点的索引信息。-k以k字节的形式表示文件的大小。-l列出文件的详细信息。-m横向输出文件名,并以“,”作分格符。-n用?值?UID,GID代替名称。-o显示文件的除组信息外的详细信息。-p-F在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。-q用?代替不可输出的字符。-r对目录反向排序。-s在每个文件名后输出该文件的大小。-t以时间排序。-u以文件上次被访问的时间排序。-x按列输出,横向排序。-A显示除“.”和“..”外的所有文件。-B不输出以“~”结尾的备份文件。-C按列输出,纵向排序。-G输出文件的组的信息。-L列出链接文件名而不是链接到的文件。-N不限制文件长度。-Q把输出的文件名用双引号括起来。-R列出所有子目录下的文件。-S以文件大小排序。-X以文件的扩展名(最后一个.后的字符)排序。-1一行只输出一个文件。--color=no不显示彩色文件名--help在标准输出上显示帮助信息。--version在标准输出上输出版本信息并退出。只列出子目录1.ls-F|grep/$或者aliassub="ls-F|grep/$"(linux)2.ls-l|grep"^d"或者ls-lL|grep"^d"(Solaris)计算当前目录下的文件数和目录数下面命令可以分别计算当前目录下的文件和目录个数:#ls-l*|grep"^-"|wc-l----tocountfiles#ls-l*|grep"^d"|wc-l-----tocountdir显示彩色目录列表打开/etc/bashrc,加入如下一行:aliasls="ls--color"下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了,其中颜色的含义如下:1.蓝色-->目录2.绿色-->可执行文件3.红色-->压缩文件4.浅蓝色-->链接文件5.灰色-->其他文件ls-tl--time-style=full-isosshdls-ctl--time-style=long-iso-------------------------------------------------------------------------------------------------------------------------------------------------------------------附:du-sh查看当前文件夹大小du-sh*|sort-n统计当前文件夹(目录)大小,并按文件大小排序附送:du-skfilename查看指定文件大小Linux:ls以K、M、G为单位查看文件大小Linux:ls以K、M、G为单位查看文件大小。#manls……-h,--human-readableprintsizesinhumanreadableformat(e.g.,1K234M2G)……#lscuss.warnohup.out#ls-ltotal30372-rw-r--r--1rootroot31051909May2410:07cuss.war-rw-------1rootroot0Mar2013:52nohup.out#ls-lhtotal30M-rw-r--r--1rootroot30MMay2410:07cuss.war-rw-------1rootroot0Mar2013:52nohup.out#ll-htotal30M-rw-r--r--1rootroot30MMay2410:07cuss.war-rw-------1rootroot0Mar2013:52nohup.out[root@localhostrice_f2]#ls-lhs总计28G15G-rw-r--r--1rootroot15G06-0414:35all.txt8.0K-rwx--x--x1rootroot63206-0415:57hash.pl371M-rw-r--r--1rootroot371M06-0318:061.fa360M-rw-r--r--1rootroot359M06-0318:072.fna8.0K


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/6270269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存