ChinaITLab-Linux工程师培训课程笔记5

来源:互联网 发布:windows 网络文件系统 编辑:程序博客网 时间:2024/04/30 07:37

文件系统的维护
1.ext2/ext3文件系统的优化与高级特性
  优化ext2/ext3文件系统
 在格式化的时候创建小的数据块(存储单元)
 [root@localhost root]# mkfs.ext3 -b 1024 /dev/sda2
 格式化系统为最小存储单元为1024B=1k,1024可以改为2048,4096两种
 [root@localhost root]# mkfs.ext3 -b 1024 /dev/sdb1
 [root@localhost root]# mkfs.ext3 -b 4096 /dev/sdb4
 [root@localhost root]# mount /dev/sdb1 /mnt/d1
 [root@localhost root]# mount /dev/sdb4 /mnt/d2
 [root@localhost root]# echo "h1" > /mnt/d1/test
 [root@localhost root]# echo "h1" > /mnt/d2/test
 显示/mnt/d1/test,/mnt/d2/test的信息:
 [root@localhost root]# ls -lh /mnt/d[12]/test
 显示两个目录的大小:
 [root@localhost root]# du -sh /mnt/d[12]
 [root@localhost root]# mkdir /mnt/d1/dir
 [root@localhost root]# mkdir /mnt/d2/dir
 分别写入文件:
 [root@localhost root]# echo "h1" > /mnt/d1/dir/test
 [root@localhost root]# echo "h1" > /mnt/d2/dir/test
 [root@localhost root]# ls -lh /mnt/d[12]
 [root@localhost root]# du -sh /mnt/d[12]

 [root@localhost root]# mkfs.ext3 -b 4096 -i 4096 /dev/sdb1   //每个节点一个Block
 [root@localhost root]# mkfs.ext3 -b 4096 -i 8192 /dev/sdb1   //每个节点两个Block
检查Linux文件系统的属性:
 [root@localhost root]# tune2fs -l /dev/hda1 |more
 Inode count:              26104       //节点数
        Block count:              104391      //块数
保留块-为管理员保留的磁盘管理空间(防止因为硬盘太满,而使管理员无法编辑配置文件),默认
为总数据块的5%
        [root@localhost root]# mkfs.ext3 -b 4096 -i 8192 -m 2 /dev/sda2
 设置保留块的数量占总数的百分比为2%
 [root@localhost root]# tune2fs -l /dev/hda1 |more
 Reserved block count:     5219
 过滤这个值:
 [root@localhost root]# tune2fs -l /dev/hda1 |grep Reserved
tune2fs - 调整ext2/ext3文件系统特性的工具
 <1> -l <device>  查看文件系统信息
 <2> -c <count>  设置强制自检(当一个分区挂载的次数达到一定的次数后,就会进行
                         强制自检)的挂载次数
 <3> -i <n day>  设置强制自检的间隔时间
 <4> -m <percentage> 保留块的百分比
 <5> -j   将ext2文件系统(没有日志功能)转换为ext3(有日志功能)格式
示例:
 [root@localhost root]# tune2fs -l /dev/hda1
 显示:Maximum mount count:      -1 //最大的挂载次数
 如果最大的挂载次数为-1,表示Mount count 永远不会达到-1,从而hda1文件系统永远不会自检
 设置强制自检次数:
 [root@localhost root]# tune2fs -c 2 /dev/hda1
 tune2fs 1.32 (09-Nov-2002)
 Setting maximal mount count to 2
 [root@localhost root]# tune2fs -l /dev/hda1 |grep -i "mount count"
 Mount count:              24
 Maximum mount count:      2
 -i 选项表示忽略大小写,过滤出"mount count"
 [root@localhost root]# tune2fs -l /dev/hda1
 Check interval:           0 (<none>)     //强制自检的间隔时间,0表示不会强制自检
 查看保留块的百分比:
 [root@localhost root]# tune2fs -l /dev/hda1 |grep -i "reserved"
 Reserved block count:     5219
 Reserved blocks uid:      0 (user root)
 Reserved blocks gid:      0 (group root)
 以ext2文件系统格式化hda1
 [root@localhost root]# mkfs.ext2 /dev/hda1
 [root@localhost root]# df -T                      //可以查看文件类型
 文件系统      类型       1K-块      已用      可用 可用% 挂载点
 /dev/hda2     ext3     3020172   2457404    409348   86% /
 /dev/hda1     ext3      101089      9324     86546   10% /boot
 none         tmpfs       62996         0     62996    0% /dev/shm
 [root@localhost root]# tune2fs -j /dev/hda1
 //把ext2文件系统转换为ext3文件系统。
 //但是ext3文件系统不能转换为ext2文件系统
 //这个转换过程不破坏原分区里面存放的文件

 [root@localhost root]# mount -t ext2 /dev/hda1 /mnt/d1
 //我们可以使用这条命令,将文件系统格式为ext3的/dev/hda1分区,以ext2
 格式强制挂载,这样磁盘就不具有日志功能。造成磁盘的长时间自检或文件的丢失
 
 判断文件系统是否有日志:
 [root@localhost root]# tune2fs -l /dev/hda1 |more
 Filesystem features:      has_journal filetype sparse_super
 //表示有日志功能
文件系统的检查工具
 fsck --检查文件系统数据完整性的工具
  用法一:fsck -t ext2 /dev/hda1
  用法二:fsck.ext2 /dev/hda1
 e2fsck 检查ext2/ext3文件系统的工具 (危险,不要使用)
 [root@localhost root]# fsck.ext3 /dev/hda1 //这条命令开机一般会自动运行
 [root@localhost root]# fsck -t ext3 /dev/hda1
 fsck 1.32 (09-Nov-2002)
 e2fsck 1.32 (09-Nov-2002)
 /boot: clean, 41/26104 files, 12626/104391 blocks
 //表示无错,假如有错,会提示修复
 [root@localhost root]# fsck.ext3 -y /dev/hda1 //带y参数,表示自动修复所有
       错误    

使用磁盘配额
 磁盘配额作用是限制普通用户使用的磁盘空间,不至于因为个别人的浪费影响所有
 使用的人。
 需要内核支持。
 只有ext2/ext3文件系统目前被支持。
 需要用户程序包quota软件包。
磁盘配额配置过程
 <1>使用usrquota(用户的磁盘配额),grpquota(组的磁盘配额)选项挂载一个分区,
    激活内核的支持
    磁盘配额只能在分区上做
  mount -o usrquota,grpquota /dev/hda1 /mnt/d1 或
  mount -o remount,usrquota,grpquota / (重新挂载根分区)
 <2>init 1 (进入单用户环境,防止多个用户使用磁盘,产生冲突)
 <3>quotacheck -cvuga检查并创建磁盘配额的数据库文件
    c 表示create 创建
    v 表示显示详细的创建信息
    u 表示user
    g 表示group
    a 表示所有激活磁盘配额的分区,使用a就不要使用分区,使用分区就不要使用a
    数据库文件保存在每一个分区的根目录下
    配置好后一般需要重新启动计算机
 <4>edquota -u <username>为指定用户分配磁盘空间和节点数量
    -u 表示指定用户名
    -g 表示指定组名
 <5>quota命令可以查看用户的配额使用情况
实际配置过程:
 [root@localhost root]# mount /dev/sdb1 /mnt/sd1 -o usrquota,grpquota
 //表示指定的分区支持磁盘配额
 结果保存在/etc/mtab里面
 可是使用命令查看:
 [root@localhost root]# more /etc/mtab
 /dev/hda2 / ext3 rw 0 0
 none /proc proc rw 0 0
 none /dev/pts devpts rw,gid=5,mode=620 0 0
 none /dev/shm tmpfs rw 0 0
 /dev/hda1 /mnt/test ext3 rw,usrquota,grpquota 0 0

  
 [root@localhost root]# quotacheck -cvuga 或
 [root@localhost root]# quotacheck -cvug /dev/sdb1
 查看/mnt/sd1:
 [root@localhost root]# ls /mnt/sd1
 aquota.group aquota.user  //表示新建的数据库文件,保存每个用户的配额情况

 [root@localhost root]# quotaon -a //激活所有的分区,或者:
 quotaon /dev/sdb1 or quotaon /mnt/sd1

 编辑磁盘配额(xulei用户)
 [root@localhost root]# edquota -u xulei
 编辑xulei用户在这个磁盘分区上能够使用的块的数量和节点的数量
 块(blocks)的限制分为软限制(soft,可以超过)和硬限制(不可以超过)
 节点(inodes),表示文件的个数,指示用户在这个分区上能够创建的文件数
 可将soft(blocks)设置为1024(字节)
Disk quotas for user xulei (uid 500):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda1                         0       1024       4096          0        2        4

 [root@localhost root]# mkdir /mnt/sd1/redhat
 把权限赋给redhat:
 [root@localhost root]# chown redhat /mnt/sd1/redhat
 切换成redhat身份:
 [root@localhost root]# su - redhat
 进入文件夹:
 [redhat@localhost redhat]$ cd /mnt/sd1/redhat
 用quota命令查看:
 [redhat@localhost redhat]$ quota
 [redhat@localhost redhat]$ dd if=/dev/zero of=file1 bs=1k count=1024
 //bs 表示一次读1k,连续读1024个
 创建文件:
 [redhat@localhost redhat]$ touch aa

 删除文件:
 [redhat@localhost redhat]$ rm file1
 删除所有文件:
 [redhat@localhost redhat]$ rm *

 做磁盘配额的时候必须限制用户的块数量和可创建的文件数量

 检查用户的磁盘配额:
 [root@localhost root]# quota -u redhat

 打印所有用户的磁盘配额情况:
 [root@localhost root]# repquota -a

 修改过期时间:
 [root@localhost root]# edquota -t

 关闭分区和磁盘的配额:
 [root@localhost root]# quotaoff /mnt/sd1  或者
 [root@localhost root]# quotaoff /dev/sda1

 为了让磁盘配额永久有效,我们需要编辑fstab文件,把挂载选项写进fstab:
 [root@localhost root]# vi /etc/fstab
 把 /dev/sda1 的defaults项换成defaults,usrquota,grpquota
 
 如果不使用磁盘配额,应先使用quotaoff先关闭磁盘配额,再删数据库文件:aquota.group
 aquota.user,删除 fstab里面的",usrquota,grpquota"


 

 

2.磁盘检查
3.磁盘配额
4.自动挂载分区