linux之高级文件系统管理

Posted www岩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux之高级文件系统管理相关的知识,希望对你有一定的参考价值。

        由于Linux是一个多用户管理的操作系统,而Linux默认情况下并不限制每个用户使用磁盘空间的大小,假如某个用户疏忽或者恶意占满磁盘空间,将导致系统磁盘无法写入甚至崩溃;为了保证系统磁盘的有足够的剩余空间,我们需要对用户和组进行磁盘空间使用限制。

磁盘配额限制类型:

  •         限制用户和组对磁盘空间的使用量
  •         限制用户和组在磁盘内创建文件的个数

磁盘配额限制级别:

  •         软限制:低级限制,此限制可以突破,突破时会被警告,超出部分会有宽限天数,宽限天数到期后超出部分被清空,软限制不能超过硬限制
  •         硬限制:绝对限制,此限制不会被突破,达到指定限制后无法使用更多空间
  •        宽限天数:当有数据超过软限制后,超出部分会被计时,宽限天数到期后超出部分数据将被清空,宽限天数默认是7天

下面我们开始详细看一下对用户磁盘空间设置的详细命令,首先需要先开启quota,然后再对quota进行设置。

 

一  、ext系列文件系统的quota

 

1、开启quota(ext、xfs)
vim /etc/fstab

 

/etc/fstab文件中写入以下行,最后保存退出

 

UUID=e060a9c0-c9d3-4632-ae17-70ffee835d6f   /app   ext4 defau
lts,usrquota,grpquota        1 0

然后再重新挂载,再grep一下查看是否挂载成功

 

 

[[email protected] ~]# mount -o remount /dev/sdb
[[email protected] ~]# mount |grep quota
/dev/sdb on /app type ext4 (rw,usrquota,grpquota)

2、生成quota数据库

[[email protected] ~]# quotacheck -cugm /app/ 
[[email protected] ~]# cd /app
[[email protected] app]# ls
aquota.group  aquota.user  lost+found

 

3、开启quota

  [[email protected] app]# quotaon /app

到此为止ext4类型的文件系统的quota已经开启成功,下面再展示相关用法及设置

4、quota
                -v 显示当前用户自己的quota限额

 

[[email protected] app]# quota -v
Disk quotas for user root (uid 0): 
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
       /dev/sdb      20       0       0               2       0       0 

 

 

-v username 显示指定用户的quota限额 此时需要注意这个命令仅限root
repquota -v /app 显示所有用户的quota限额(仅限用户在该目录有所属的文件) 仅限root

5、配置quota下面这几条命令都是直接打开相应的脚本文件然后在里边直接进行相应的块或是inode的软硬设备

   edquota -u/g username/groupname
     edquota -u caocao
     edquota -g weiguo

 

非交互式 个人觉得如果知道对文件要求是什么的话,直接用下述方法比较好

   

  setquota -u[default] |-g  username|groupname 10M 20M 5 20 /app  
  setquota -u caocao 0 0 0 0 /app 
  setquota -g weiguo 10M 20M 50 100 /app
  edquota -p caocao zhangfei  将liubei的quota设置复制给zhangfei

 

注意:对group设置quota时,应该对附加组设置,同时,目录要设置sgid权限才有意义 

 

二 、xfs文件系统的quota
1.vim /etc/fstab
    在需要开启quota的文件系统的挂载选项的defaults后加usrquota,grpquota如下
UUID=f5f95aff-f321-46b6-9a1b-14781387548d   /backup    xfs  defaults,usrquota,grpquota   1 0

一定要卸载再挂载才生效

2.配置
xfs_quota -x -c "print" 查看当前系统中所有的xfs文件系统哪些开启了quota

[[email protected] bin]#xfs_quota -x -c "print"
Filesystem          Pathname
/                         /dev/mapper/centos-root
/boot                 /dev/sda1
/backup            /dev/md1 (uquota, gquota)
/app                 /dev/mapper/centos-app

 

xfs_quota -x -c "report -ugibh"  查看quota设置

                         -u 查看用户的
                         -g 查看组的
                         -i 查看inode
                        -b 查看block (默认)
                        -h human-readable

 

                       -uibh

 

下边是应用最多的 –ugibh组合的应用,用户和组都可以显示quota权限

 

xfs_quota -x -c "state" /backup 查看qutoa状态,显示grace time时间

 

[[email protected] home]#xfs_quota -x -c "state" /backup/
User quota state on /backup (/dev/md1)
   Accounting: ON
   Enforcement: ON
   Inode: #67 (2 blocks, 2 extents)
Group quota state on /backup (/dev/md1)
   Accounting: ON
   Enforcement: ON
   Inode: #68 (2 blocks, 2 extents)
Project quota state on /backup (/dev/md1)
   Accounting: OFF
   Enforcement: OFF
   Inode: #68 (2 blocks, 2 extents)
Blocks grace time: [14 days]  是修改之后的时间,默认是7天
Inodes grace time: [7 days]
Realtime Blocks grace time: [7 days]

xfs_quota -x -c "limit -u bsoft=30M bhard=40M 用户" /backup

 

3.对用户设置quota
xfs_quota -x -c "limit -g bsoft=50M bhard=100M shuguo" /backup

 

[[email protected] home]#xfs_quota -x -c "limit -u bsoft=40M bhard=50M sunquan" /backup
[[email protected] home]#repquota -v /backup/
*** Report for user quotas on device /dev/md1
Block grace time: 14days; Inode grace time: 7days
                         Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --       0       0       0              3     0     0       
sunquan   +-   46080   40960   51200  7days       2     0     0      


*** Status for user quotas on device /dev/md1
Accounting: ON; Enforcement: ON
Inode: #67 (2 blocks, 2 extents)

对组设置quota

xfs_quota -x -c "timer -u -b 14days" /backup   设置quota grace time

 

获取帮助
xfs_quota -x -c "help limit"
xfs_quota -x -c "help report"

 

三、quota关闭

 

quotaoff  选项       分区名

 

                 -a    根据/etc/mtab文件关闭所有分区的磁盘配额(不写分区名)

 

                 -u    关闭用户的磁盘配额

 

                 -g    关闭组的磁盘配额

 

                 -v    显示启动过程信息

 

如果想下次开机时不再启动,最好还是在/etc/fstab文件中修改一下比较好。以上是quota相关的设置。

 


















以上是关于linux之高级文件系统管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统之高级用户组和权限管理

高级文件系统管理之mdadm与lvm的创建

[Linux文件管理之(高级)⽂件查找]

Linux——高级编程之概要

Linux C高级编程——文件操作之系统调用

Linux系统管理——高级文件系统管理