首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    linux下文件数、目录数、文件名长度的各种限制

    以下测试都是在没有优化或修改内核的前提下测试的结果 1. 测试目的:ext3文件系统下filename最大字符长度   测试平台:RHEL5U3_x64   测试过程: LENTH=`for i in {1..255};do for x in a;do echo -n $x;done;done` touch $LENTH 当增加到256时,touch报错,File name too long linux系统下ext3文件系统内给文件/目录命名,最长只能支持127个中文字符,英文则可以支持255个字符 2. 测试目的:ext3文件系统下一级子目录的个数限制   测试平台:RHEL5U3_x64   测试过程: [root@fileserver maxdir]# for i in {1..32000};do mkdir $i;done mkdir: cannot create directory `31999': Too many links mkdir: cannot create directory `32000': Too many links ext3文件系统一级子目录的个数为31998(个)。 Linux为了cpu的搜索效率而规定的,要想改变数目大概要重新编译内核.  3. 测试目的:ext3文件系统下单个目录里的最大文件数   测试平台: RHEL5U3_x64   测试过程:   单个目录下的最大文件数似乎没什么特别限制,也是受限于所在文件系统的inode数限制:   df -i或者使用tune2fs -l /dev/sdaX或者dumpe2fs -h /dev/sdaX查看可用inode数,后两个命令    输出结果是一样的,但是跟df所得出的可用inode数会有些误差,至今不明白什么原因。   网上常用两种解决办法:   1) 重新mkfs,ext3默认block大小4096 Bytes,block设置小一些inode数设置大一些   2) 使用loopback文件系统临时解决:       在/usr中(也可以在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个       文件系统中,并将它mount到/usr下合适的位置。这样可以大大减少你/usr中的文件数目。但是系统       性能会有点损失。 4. 测试目的: 打开文件数限制(文件句柄、文件描述符)   测试平台: RHEL5U3_x64   ulimit -n 65535设置,或者/etc/security/limit.conf里设置用户打开文件数、进程数、CPU等

    02

    选择设置好ext3日志模式

    Linux是一种开放的、因Internet而产生的操作系统。Internet的发展、以网络为中心的计算模式如电子商务被迅速接受和普及,都为 Linux提供了更巨大的机会,使之成为企业和部门级的首选平台。同时,Linux也以其对新技术的巨大包容能力为自身发展提供了良好的生长和栖息环境。这表现在其内核技术的发展为Linux环境下管理数据、存储数据、分配数据、升级数据提供了高性能的系统技术支持。ext3文件系统就属这类技术中较突出的一种。     日志文件系统     通常在系统运行中写入文件内容的同时,并没有写入文件的元数据(如权限、所有者及创建和访问时间),如果在写入文件内容之后与写入文件元数据之前的时间差里,系统非正常关闭,处于写入过程中的文件系统会非正常卸载,那么文件系统就会处于不一致的状态。当重新启动时,Linux会运行fsck程序,扫描整个文件系统,保证所有的文件块都被正确地分配或使用,找到被损坏的目录项并试图修复它。但是,fsck不保证一定能够修复损坏。出现这种情况时,文件中不一致的元数据会填满已丢失文件的空间,目录项中的文件项可能会丢失,也就造成文件的丢失。     为了尽量减少文件系统的不一致性,缩短操作系统的启动时间,文件系统需追踪引起系统改变的记录,这些记录存放在与文件系统相分离的地方,通常我们叫“日志”。一旦这些日志记录被安全地写入,日志文件系统就可以应用它们清除引起系统改变的记录,并将它们组成一个引起文件系统改变的集,将它们放在数据库的事务处理中,保持在状态下有效数据的正常运行,不与整个系统的性能发生冲突。在任何系统发生崩溃或需要重新启动时,数据就遵从日志文件中的信息记录进行恢复。由于日志文件中有定期的检查点,通常非常整齐。文件系统的设计主要考虑效率和性能方面的问题。     Linux可以支持许多日志文件系统,包括FAT、VFAT、HPFS(OS/2)、NTFS(Windows NT)、UFS、XFS、JFS、ReiserFS、ext2、ext3等。     ext3支持多种日志模式     ext3 是ext2文件系统的高一级版本,完全兼容ext2,与ext2主要区别便是具有快速更新文件的存储功能。计算机自磁盘上读取或写入数据开始就必须保证文件系统中文件与目录的一致性,所有日志文件中的数据均以数据块的形式存放在存储设备中,当磁盘分区时文件系统即被创建,按照文件形式、目录形式支持存储数据和组织数据。Linux的文件和目录采用层次结构文件系统,文件系统一般是在安装系统时通过使用“mount”命令安装上的,用于使用的文件链表存储在文件/etc/fstab中,用于维护而安装的文件链表则存放在/etc/mtab中。     ext3提供多种日志模式,即无论改变文件系统的元数据,还是改变文件系统的数据(包括文件自身的改变),ext3 文件系统均可支持,以下是在/etc/fstab文件引导时激活的三种不同日志模式:     ◆data=journal日志模式      日志中记录包括所有改变文件系统的数据和元数据。它是三种ext3日志模式中最慢的,但它将发生错误的可能性降至最小。使用“data= journal” 模式要求ext3将每个变化写入文件系统2次、写入日志1次,这将降低文件系统的总性能,但它的确是使用者最心爱的模式。由于记录了在ext3中元数据和数据更新情况,当一个系统重新启动的时候,这些日志将起作用。     ◆data=ordered日志模式     仅记录改变文件系统的元数据,且溢出文件数据要补充到磁盘中。这是缺省的ext3日志模式。这种模式降低了在写入文件系统和写入日志之间的冗余,因此速度较快,虽然文件数据的变化情况并不被记录在日志中,但它们必须做,而且由ext3的daemon程序在与之相关的文件系统元数据变化前执行,即在记录元数据前要修改文件系统数据,这将稍微降低系统的性能(速度),然而可确保文件系统中的文件数据与相应文件系统的元数据同步。     ◆data=writeback日志模式      仅记录改变文件系统的元数据,但根据标准文件系统,写程序仍要将文件数据的变化记录在磁盘上,以保持文件系统一致性。这是速度最快的ext3日志模式。因为它只记录元数据的变化,而不需等待与文件数据相关的更新如文件大小、目录信息等情况,对文件数据的更新与记录元数据变化可以不同步,即ext3是支持异步的日志。缺陷是当系统关闭时,更新的数据因不能被写入磁盘而出现矛盾,这一点目前尚不能很好解决。     不同日志模式间有差别,但设置的方法一样方便。可以使用ext3文件系统指定日志模式,由/etc/fstab启动时完成。例如,选择data=writeback日志模式,可以做如下设置:     /dev/hda5 /opt ext3 data=writeback 1 0     在一般情况下,

    02

    在Ubuntu上挂载Windows分区的解决办法

    在我和实际使用中,字符集用utf8效果很好,没有出现乱码的问题,在终端挂载的代码如下: mount -t vfat /dev/hda2 /mnt/d -o codepage=936,iocharset=utf8 我的fstab # /etc/fstab: static file system information. # # <file system> <mount point>   <type>  <options>       <dump>  <pass> proc            /proc           proc    defaults        0       0 /dev/hdc8       /               ext3    defaults,errors=remount-ro 0       1 /dev/hdc9       none            swap    sw              0       0 /dev/hdb        /media/cdrom0   udf,iso9660 user,noauto     0       0 /dev/hdc1       /mnt/winc     vfat    defaults,codepage=936,iocharset=utf8  0  0 /dev/hdc5       /mnt/wind    ntfs    defaults,iocharset=utf8,umask=0222   0  0 /dev/hdc6       /mnt/wine    ntfs    defaults,iocharset=utf8,umask=0222   0  0 /dev/hdc7       /mnt/winf    vfat    defaults,codepage=936,iocharset=utf8  0   0 (以下转自网络) 1、挂载点必须是一个目录。 2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内 容将不可用。 对于其他操作系统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其他操作 系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。光盘是ISO9660;软盘是 fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和 windowsXP是fat16、fat32、NTFS。挂载前要了解linux是否支持所要挂载的文件系统格式。 挂载时使用mount命令: 格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有 -t<文件系统类型> 指定设备的文件系统类型,常见的有: minix linux最早使用的文件系统 ext2 linux目前常用的文件系统 msdos MS-DOS的fat,就是fat16 vfat windows98常用的fat32 nfs 网络文件系统 iso9660 CD-ROM光盘标准文件系统 ntfs windows NT 2000的文件系统 hpfs OS/2文件系统 auto 自动检测文件系统 -o<选项> 指定挂载文件系统时的选项。有些也可用在/etc/fstab中。常用的有 codepage=XXX 代码页 iocharset=XXX 字符集 ro 以只读方式挂载 rw 以读写方式挂载 nouser 使一般用户无法挂载 user 可以让一般用户挂载设备 提醒一下,mount命令没有建立挂载点的功能,因此你应该确保执行mount命令时,挂载点已经存 在。(不懂?说白了点就是你要把文件系统挂载到哪,首先要先建上个目录。这样OK?) 例子:windows98装在hda1分区,同时计算机上还有软盘和光盘需要挂载。 # mk /mnt/winc # mk /mnt/floppy # mk /mnt/cdrom # mount -t vfat /dev/hda1 /mnt/winc # mount -t msdos /dev/fd0 /mnt/floppy # mount -t iso9660 /dev/cdrom /mnt/cdrom 现在就可以进入/mnt/winc等目录读写这些文件系统了。 要保证最后两行的命令不出错,要确保软驱和光驱里有盘。(要是硬盘的磁盘片也可以经常随时 更换的话,我想就不会犯这样的错误了 :-> ) 如果你的windows98目录里有中文文件名,使用上面的命令挂载后,显示的是一堆乱码。这就要 用到 -o 参数里的codepage iocharset选项。codepage指定文件系统的代码页,简体中文中文代 码是936;io

    03

    [翻译]Ext JS 教程-开始使用 ExtJS 4

    入门

    1. 需求

    1.1 网页浏览器

    ExtJS 4 支持所有主流的浏览器,从IE 6 到最新的谷歌Chrome。在开发期间,我们建议你使用下面这些浏览器,以获得更好的调试体验。

    Ø Google Chrome 10+

    Ø Apple Safari 5+

    Ø Mozilla Firefox 4+ 带Firebug Web 开发插件

    本教程假设你正在使用最新的谷歌 Chrome 浏览器。如果你还没有 Chrome,花点时间去下载它吧,然后去熟悉熟悉 Chrome 的开发者工具。

    1.2 Web 服务器

    尽管使用 ExtJS 4 并不一定需要一个本地的web 服务器,仍然强烈建议你在开发的时候能有一个,因为 XHR 在大多数浏览器上有针对本地 file:// 的cross origin 限制。如果你还没有本地的web 服务器,建议你下载并安装 Apache HTTP Server。

    Ø 了解在 Windows 上面安装 Apache

    Ø 了解在 Linux 上面安装 Apache

    Ø Mac OS X 已经内置了apache,你可以在 System Preference > Sharing 下面的 Web Sharing 旁找到

    一旦你安装好了 Apache ,你可以通过在浏览器地址栏输入 localhost 验证它是否在运行。你会看到一个表示 Apache HTTP 服务器已经成功安装并且正常运行的开始页面。

    1.3 Ext JS 4 SDK

    下载 Ext JS 4 SDK,把压缩包解压到一个在你的web 根路径下新建的extjs文件夹。如果你不知道web根目录在哪儿,查阅你web服务器的相关文档。Web 根路径的位置根据你操作系统的不同而有所不同,但是如果你使用的是 Apache,你一般会在:

    Ø Windows - "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs"

    Ø Linux - "/var/www/"

    Ø Mac OS X - "/Library/WebServer/Documents/"

    一旦你已经完成安装,将浏览器导航至 http://localhost/extjs/index.html 。如果一个 ExtJS 4 的欢迎页面出现了,代表你已经一切就绪了。

    2. 应用程序结构

    2.1 基本结构

    如下所列的建议尽管不是强制的,但是可以作为最佳实践指南考虑,以保持你的应用的结构条理性、可扩展性和可维护性。下面是推荐的Ext JS 应用程序结构:

    - appname

    - app

        - namespace

            - Class1.js

            - Class2.js

            - ...

    - extjs

    - resources

        - css

        - images

        - ...

    - app.js

    04

    如何自制操作系统?

    这个月主要就是写有一些开发之前需要准备的基础知识。今天本来没什么想法,要写什么有关于操作系统的知识。因为对于操作系统来说,还停留在大学课本所教的内容之上。记得那会在大学的时候,从图书馆借来一本日本人写的书,叫三十天自制系统,当时觉得印象深刻,虽然也尝试着去制作,但是后面我记得需要还原的环境好像有点古老(借口而已,就算制作的系统很简单,但也涉及从计算机架构、机器语言到c语言以及文件系统等等知识,并非那么容易),就放弃了,后来就没怎么有想法说自己去搞个操作系统。今天还想着没什么可写的,要不就写一写关于与国产操作系统相关的,然后发现自己使用的国产操作系统也不多,也不能瞎扯,突然脑子里就闪过最近有看过的关于自制操作系统的事,下面就来说说。

    02

    ext3文件系统反删除利器ext3gre

    国外一份非常著名的Linux系统管理员守则中有这么一条“慎用 rm –rf 命令,除非你知道此命令将带来什么后果”,可见,这个命令对系统管理员的重要性。在实际的工作中,由此命令带来的误删除数据案例屡见不鲜,很多系统管理员都遇到过或者犯过这样的错误。由于开发人员对命令的不熟悉,或者粗心大意、疏于管理,执行了此命令,数据在一瞬间就被清空了。Linux不具备类似回收站的功能,这就意味着数据丢失。虽然Linux自身提供了恢复数据的机制,但是这个功能基本没用,要恢复数据,通过常规手段是无法完成的,此时,只有找专业的数据恢复公司来恢复数据,这样无疑要付出很大的成本和费用,造成无法估量的的损失。

    01
    领券