注:用本脚本做测试的兄弟,一定要做好备份,备份的文件是 /etc/fstab
提示输入信息的内容要完全输入正确,否则在重写/etc/fstab这个文件时,你提交的信息也都是错的。如果重启机器,你系统就挂了。已经声明,挂了的兄弟用光盘模式恢复一下。但是安全的就是做备份。
今天写了个关于磁盘配额的shell脚本,免除了手工进行文件配置和重新挂载、编辑用户的繁琐步骤,完全采用交互方式,输入那你的信息,即可完成配置。
其中输入的信息包括:第一步:挂载目录(你想要磁盘配额的目录,写绝对路径)
第二步:分区名(与挂载目录相对应的设备分区,例/dev/sda1根据个人情况 )
第三步:输入预配额的用户名
第四步:输入预配额空间大小 (数字)
第五步:输入可创建文件数 (数字)
举例:如果想在/web目录中进行磁盘配额 (前提是这个/web目录本身就是一个磁盘分区), 限定用户 zhang 在/web目录只能使用50M 的空间,请启动脚本
sh 这个脚本
提示一:输入 /web
提示二:输入 /dev/sdb2 (假设对应的设备分区是这个)
提示三:输入 zhang
提示四:输入 51200
提示五:输入 16
到此脚本执行完毕,磁盘配额就做好了。。
现在用“ quota 用户名 ” 这个命令 ,却查不到用户的配额信息,但是配额的功能却生效了,找了半天没找到原因,希望兄弟们研究研究。
你可以试一下,看是不是具有50M的限定
切换到zhang这个用户
然后执行命令 dd if=/dev/zero of=/web/a.test bs=1024 count=1024000 (说句题内话,zhang 对/web这个目录一定要有写权限啊!不然写不进去)
看看命令的返回结果吧,如下
sdb1: write failed, user block limit reached.
dd: writing `/apache/ddj': Disk quota exceeded
51137+0 records in
51136+0 records out
52363264 bytes (52 MB) copied, 6.03849 seconds, 8.7 MB/s
切换到root 再执行一下 quota zhang 却能查看到磁盘配额信息了。
[root@localhost test]# quota zhang
Disk quotas for user zhang (uid 516):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 51200* 0 51200 2 0 12
想要添加一些循环控制语句,使脚本做的更完美,但是由于时间有限,半天没弄出来,水平有限吧,兄弟们来完善吧。
原文地址:http://bbs.lampbrother.net/read-htm-tid-98000.html