大概在 1999~2000 年期间为了防止自己忘记所作的学习心得纪录!
1999 年初次接触 Unix 系统,1999 年底接触 Red Hat 6.1,而在 2000 开始撰写一些心得文章,于是有了底下这些文本的产生。 这些文本对大家来说,可能没什么,但是对鸟哥来说,这是相当珍贵的!所有鸟站的数据起源,都是从这些文本开始的! 慢慢再将许多的指令分门别类的处理进去!网站的数据汇整,真的相当花费时间啊~
不过对于学习者来说,这些数据真的不要再读了!因为实在太老旧... 建议您前往本站查找最新版本的 Linux distribution 文章来阅读,比较不会浪费时间。最新文章请前往鸟站首页查阅啰!
在 Linux 系统中,由于是多人多任务的环境,所以可能会有多人同时使用一个硬盘空间的情况发生,如果其中有少数几个用户大量的占掉了硬盘空间的话,那势必压缩其他用户的使用权力!因此管理员应该适当的开放硬盘的权限给用户,以妥善的管理系统!1. 打开硬盘的 quota 控制:在 Linux 当中,使用来作为硬盘空间管理的就是所谓的 quota 这个咚咚啦!使用这个模块要有几个步骤,底下就分别说说吧!
另外要特别注意的是,使用 quota 时,你的内核(kernel)必须有支持 quota 这个模块,否则底下的工作全都是白做的啰!那如果万一不幸你的内核不支持呢?那就只好自己重新编辑内核啰。编辑内核的方法在往后会提到,请详细参考吧!
由于 quota 是只能在 ext2 的 Linux 文件系统才能打开使用,因此,我们必须修改 /etc/fstab 内的文件结构才行。而 quota 的限制之 partition 则是 usrquota 与 grpquota 两个,输入 vi /etc/fstab 之后,进入如下的画面,并在根目录中(/)加入usrquota及 grpquota两个咚咚。2. 运行 quotacheck -avug 来确认磁盘:
[root@tsai root]# vi /etc/fstab
/dev/hda5 / ext2 defaults,usrquota,grpquota 1 1
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0
/dev/hda6 swap swap defaults 0 0
/dev/fd0 /mnt/floppy ext2 noauto,owner 0 0
/dev/hda1 /win98 vfat defaults 1 1
/dev/hdb1 /win2000 vfat defaults 1 1
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0如上图中,我们将 /dev/hda5 也就是根目录(/)作为 quota 的空间限制硬盘!(通常就是 /home 所在的那个硬盘就是了!)所以在 defaults 后面再加入 usrquota 及 grpquota 两个 partition,注意喔,每个咚咚都是以 逗号 来分隔。
在做完了磁盘的规划之后,再来就是要让我们刚刚的设置有效化啦!要让 usrquota 及 grpquota 这两个 partition 开始工作,使用如下的语法:3. 编辑用户的可使用空间:
[root@tsai root]# quotacheck -avug
Scanning /dev/hda5 [/] done
Checked 4076 directories and 81631 files
Using quotafile /quota.user
Updating in-core user quotas
Using quotafile /quota.group
Updating in-core group quotas由于我们是使用 hda5 这个硬盘作为 quota 使用,因此,quota 这个程序会去找寻这个区块中的用户与群组,并将所找到的数据在根目录中以 quota.group 及 quota.user 两个文件存起来!其中, -avug 的参数意义为:
- -a :代表扫瞄所有具有 usrquota, grpquota 这两个 partition 的硬盘;
- -v :代表扫瞄的时候显示消息在屏幕上;
- -u :代表扫瞄用户在此硬盘中使用的文件和目录;
- -g :代表扫瞄使用群组在此硬盘中所使用的文件和目录。
好了,在加着下来就是我们要限制用户的空间了!用户空间的限定很简单,只要使用 edquota -u 帐号 ,且以 vi 就可以达成!以下我们就来作作看吧!4. 编辑使用群组的可使用空间:
[root@tsai root]# edquota -u vbird
Quotas for user vbird:
/dev/hda5: blocks in use: 180, limits (soft = 0, hard = 0)
inodes in use: 45, limits (soft = 0, hard = 0)刚开始的时候,你的用户可使用空间并不会被限制,所以上面图中可以看到 soft 及 hard 都是 0 也就是没有限制的状况!OK!那这个单位是啥呢?单位是 KB ,所以当你要限制 vbird 这个用户的空间为 50 MB 的时候,可以约略使用 50000 KB 来取代!所以你就必须以 vi 来直接改成下图:
Quotas for user vbird:
/dev/hda5: blocks in use: 180, limits (soft = 50000, hard = 50000)
inodes in use: 45, limits (soft = 50000, hard = 50000)最后再按 :wq 退出 vi 即完成了用户的硬盘空间限制啦!简单吧!那何谓 soft 及 hard 呢?基本上,linux 容许你有一定的警戒空间,例如你给 vbird 的真实容量限制是 50000KB,但是你希望在使用了 40000KB 的时候系统就对 vbird 发出警告,告知他的硬盘使用率已经太高了,这时你的 soft 就可以设成 40000 而 hard 仍是 50000!
实际上我们在进行硬盘容量限制的时候,通常是以一个群组的人来作限制,例如在一个研究室中,自己研究室的同仁可使用 1G 的空间,而对外开放的人员仅能使用 200MB 的空间!当然了,群组的容量一定要比个人的容量大啦!否则设置就一定会出现错误!群组的设置与用户的设置是一样的,只是参数改成 -g 而已!5. 启动与关闭 quota :
[root@tsai root]# edquota -g vbird
Quotas for group users:
/dev/hda5: blocks in use: 0, limits (soft = 0, hard = 0)
inodes in use: 0, limits (soft = 0, hard = 0)例如上图中,users 这个群组也是尚未设置容许空间设置!设置与用户相同!只是要特别注意不要让群组可使用空间小于用户的限制!
设置完成之后当然就是要使 quota 可以动作啦!quota 的启动与关闭分别使用下面的参数:6. 开机自动加载 quota 设置:启动的时候,如果你可以看到底下的消息就表示 quota 启动成功啦!
- 启动: quotaon -avug
- 关闭: quotaoff -avug
[root@tsai root]# quotaon -avug
/dev/hda5: group quotas turned on
/dev/hda5: user quotas turned on
我们设置 quota 是为了维持系统的资源分配合理性,当然希望一开机就可以自动加载 quota 的设置啰。如何加载呢,就直接在 /etc/rc.d/rc.local 这个开机设置档中的最后一行加入:
[root@tsai root]# vi /etc/rc.d/rc.local
/sbin/quotaon -avug这样一来,每次开机的过程中就会自动的加载 quota 的设置了!