请选择 进入手机版 | 继续访问电脑版

[LINUX] Linux下利用 quota下令 管理磁盘空间的实例教程

[复制链接]
查看55 | 回复5 | 2021-9-4 23:40:03 | 显示全部楼层 |阅读模式

1.通过yum 方式 安装quota

复制代码代码如下:
#yum install quota

2.VirtualBox创建硬盘
假如 你的Linux环境建立在VirtualBox下:
(1)关闭假造 机镜像
点击setting 设置 假造 机所利用 的硬件

2016412111217295.png (773×610)

(2)设置 新硬盘

2016412111248895.png (660×467)

选择Create new disk

2016412111306236.png (650×479)

选择VHD (virtual hard disk)

2016412111427931.png (667×432)

输入硬盘镜像名字

2016412111446505.png (668×449)

(3)格式化硬盘
进入linux,利用 下令 创建硬盘举行 格式化

复制代码代码如下:
#mkfs -t ext4 /dev/sdb

(4)为硬盘空间探求 目次

复制代码代码如下:
#mount /dev/sdb /home

假如 有必要 长期挂着,请自行百度怎样 修改/etc/fstab,本人修改多次,让体系 多次崩溃,终极 放弃,选择在 vi /etc/rc.local 内里 ,业余的加入 mount /dev/sdb /home 这条下令 。

3.格式化新创建的硬盘

复制代码代码如下:
[root@localhost ~]# mkfs -t ext4 /dev/sdb


复制代码代码如下:
mke2fs 1.41.12 (12-Apr-2016)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
524288 inodes, 2097152 blocks
104857 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2147483648
64 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                           
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

挂在硬盘到/home目次

复制代码代码如下:
[root@localhost ~]# mount /dev/sdb /home/
[root@localhost ~]# mount -o remount,usrquota,grpquota /home
[root@localhost ~]# mount


复制代码代码如下:
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb on /home type ext4 (rw,usrquota,grpquota)

为体系 设置启动后自动 挂载硬盘

复制代码代码如下:
[root@localhost ~]#vi /etc/rc.local

添加

复制代码代码如下:
mount /dev/sdb /home
mount -o remount,usrquota,grpquota /home

备注:本人并没有采取修改/etc/fstab 的方法,由于 该方法容易 由于 输入的字符或格式不对导致体系 崩溃,以是 采取了修改用户启动文件的方法

4.设置 quota

复制代码代码如下:
[root@localhost ~]#quotacheck -avug 对整个体系 含有 usrquota, grpquota 参数的文件体系 举行 quotacheck 扫描

quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sdb [/home] done
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Checked 2 directories and 0 files
quotacheck: Cannot create new quotafile /home/aquota.user.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
quotacheck: Cannot create new quotafile /home/aquota.group.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
出现报错,报错缘故原由 是由于 没有关闭selinux

复制代码代码如下:
[root@localhost ~]# setenforce 0
[root@localhost ~]# quotacheck -avug

quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sdb [/home] done
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Checked 2 directories and 0 files
quotacheck: Old file not found.
quotacheck: Old file not found.
成功天生

复制代码代码如下:
[root@localhost ~]#quotaon -auvg 启动quota

5.为用户添加硬盘空间限定
创建账户

复制代码代码如下:
[root@localhost ~]# useradd quotauser1
[root@localhost ~]# passwd quotauser1


复制代码代码如下:
[root@localhost ~]# edquota -u quotauser1

Disk quotas for user quotauser1 (uid 500):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb                         16     500000     600000          4        0        0

限定 用户quotauser1的利用 空间为500M,最大限定 是600M
参数意义参考
  soft :这是最低限定 容量的意思,利用 者在脱期 期间之内,他的容量可以超过 soft ,但必必要 脱期 时间之内将磁盘容量降低到 soft 的容量限定 之下!
  hard :这是『绝对不能超过』的容量!跟 soft 相比的意思为何呢?通常 hard limit 会比 soft limit 为高,比方 网络磁盘空间为 30 MB ,那么 hard limit 就设定为 30MB ,但是为了让利用 者有肯定 的警戒心,以是 当利用 空间超过 25 MB 时,比方 利用 者利用 了 27 MB 的空间时,那么体系 就会告诫 利用 者,让利用 者可以在『脱期 时间内』将他的档案量降低至 25 MB ( 亦即是 soft limit )之内!也就是说, soft 到 hard 之间的容量实在 就是脱期 的容量啦!可以达到针对利用 者的『警示』作用!
  脱期 时间:那么脱期 时间就可以很清楚 的知道含意是什么了!也就是当您的利用 者利用 的空间超过了 soft limit ,却还没有到达 hard limit 时,那么在这个『脱期 时间』之内,就必必要 请利用 者将利用 的磁盘容量降低到 soft limit 之下!而当利用 者将磁盘容量利用 环境 超过 soft limit 时,『脱期 时间』就会自动 被启动,而在利用 者将容量降低到 soft limit 之下,那么脱期 时间就会自动 的取消啰!

6.测试
登陆quotauser1
创建超过600M的文件

复制代码代码如下:
[quotauser1@localhost ~]$ dd if=/dev/zero of=bigfile bs=1M count=700

sdb: warning, user block quota exceeded.
sdb: write failed, user block limit reached.
dd: writing `bigfile': Disk quota exceeded
586+0 records in
585+0 records out
614379520 bytes (614 MB) copied, 2.75934 s, 223 MB/s

复制代码代码如下:
[quotauser1@localhost ~]$ ls

bigfile

复制代码代码如下:
[quotauser1@localhost ~]$ ls -l

total 599984
-rw-rw-r--. 1 quotauser1 quotauser1 614379520 Sep 28 03:28 bigfile

可以发现文件的大小被限定 了


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 123457281 | 2021-9-19 01:59:58 | 显示全部楼层
今天的心情很不错啊
回复

使用道具 举报

avatar 唰唰冷呵映 | 2021-9-19 22:26:11 | 显示全部楼层
求加金币!
回复

使用道具 举报

avatar 123457021 | 2021-9-25 06:48:09 | 显示全部楼层
回帖也有有水平的!
回复

使用道具 举报

avatar 徐殿军 | 2021-10-9 02:14:06 | 显示全部楼层
admin楼主是一个神奇的青年!
回复

使用道具 举报

admin楼主的帖子实在是写得太好了。文笔流畅,修辞得体!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则