热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux初始化quota数据库,Linuxquota完整配置

首先保证已经安装quota,然后在fstab中对需要限额的分区进行设置比如我们对home磁盘配额,fstab就应该类似如下:devhda5homeext2rw,userquota,

首先保证已经安装 quota, 然后在fstab中对需要限额的分区进行设置

比如我们对 /home 磁盘配额, fstab 就应该类似如下:

/dev/hda5 /home ext2 rw,userquota,groupquota 1 2

上边的

/dev/hda5 就是我的 /home 对应的磁盘分区

/home 是挂载点

rw 是表示可读写

userquota 是表示对用户进行配额

groupquota 是表示对用户组群进行配额

接着编辑 /etc/rc.d/rc.local, 加上

代码:

if [-x /sbin/quotacheck ];then

echo "Checking quotas,This may take some time ... "

/sbin/quotacheck -avug

echo "Done."

fi

if[ -x /sbin/quotaon ];then

echo "Enabling disk quota ... "

/sbin/quotaon -avug

echo "Done."

fi

最后在对应的目录下创建配额文件,比如我上边的实例中就应该为 /home/quota.user 和 /home/quota.group, 分别对应用户配额和用户组群配额, 更像细的资料应该参考 fstab 的man

不过我参考 freebsd 中的内容,似乎也可以在 /etc/ 下创建 quota.user 和 quota.group 来对用户全局磁盘配额进行限制,你可以试试

不管磁盘空间有多么大,磁盘空间不够使用似乎是一个永远的事实。Linux提供了限制用户磁盘空间的手段,以便促使每个用户合理有效地使用分配给他的空间。用户磁盘空间的限制是以文件系统(分区)为单位,而不理会用户文件放在该文件系统中的哪个目录中。

1. 修改 /etc/fstab 文件.在文件系统相应的 mount 命令行中加入限额选项(如下的例子)。

/dev/hda7 /home ext2 defaults,usrquota,grpquota 1 2

2. 重新装载 Linux 分区,例如:

[root@fileserver root]# mount -o remount /home

继续。

3. 在欲加磁盘限额的文件系统的安装点目录建立 aquota.user 和 aquota.group 文件:

[root@fileserver root]# cd /home (/home 为单个分区 /dev/hda7 的装载点)

[root@fileserver home]# touch aquota.user (为用户设置磁盘限额)

[root@fileserver home]# touch aquota.group (为用户组设置磁盘限额)

这时生成 的 aquota.user 和 aquota.group 是空的,不符合系统的要求。

请看下一步。

4. 生成符合系统要求的 aquota.user 和 aquota.group

[root@fileserver home]# quotacheck /home/ (生成符合系统要求 的 aquota.user)

[root@fileserver home]# quotacheck -g /home/ (生成符合系统要求 的 aquota.group)

生成时,有错误提示。这不要紧。因为 先前 touch 生成的是一个空文件,肯定格式不对。

在这时,对于 ext3 文件系统,可能“不得不”运行这个命令:

[root@fileserver home]# quotacheck -m [-u] /dev/hda7

[root@fileserver home]# quotacheck -m -g /dev/hda7

这样 正确的 aquota.user 和 aquota.group 生成啦。

继续下一步:

5. 为用户设置磁盘空间限额:

[root@fileserver home]# edquota [-u] user_name

[root@fileserver home]# edquota -g group_name (对于用户组)

本命令开启一个 vi 窗口,为用户设置磁盘空间和i节点数目的限额.其中 soft 限额为一个临时性的限额;hard 限额为一个永久性限额(soft 限额可略大于 hard 限额),编辑方法与 vi 完全相同,以 ZZ 或 :wq 命令退出.如要给若干用户 user1, user2,user3 指定相同的磁盘限额,可用下面的命令给这些用户赋予与 protuser 相同的限额:

[root@fileserver home]# edquota [-u] -p protuser user1 user2 user3

[root@fileserver home]# edquota -g -p protgroup group1 group2 group3

设定soft quota和hard quota之间的时间:

[root@fileserver home]# edquota -t

出现一个 vi 窗口:

Grace period before enforcing soft limits for users:

Time units may be: days, hours, minutes, or seconds

Filesystem Block grace period Inode grace period

/dev/hda7 7days 7days

修改成自己所需要的,并保存退出就设置这个时间啦。

您在这之后可能需要重新启动,以使磁盘限额生效。

您可以啦,不过还要注意一些问题,请继续看下去。

6. 检查磁盘空间限制的一致性,系统会自动每次重新启动时,在检查硬盘后进行( /etc/rc.sysinit ),无须您亲手进行。

假若 分区 已经以“读写”方式挂上时,您要小心,例如:

[root@fileserver root]# quotacheck /home

quotacheck: Quota for users is enabled on mountpoint /home so quotacheck might damage the file.

Please turn quotas off or use -f to force checking.

7. 以后您如果要取消磁盘空间和i节点数目的限制,可用以下命令,请看:

[root@fileserver root]# quotaoff /home (取消磁盘空间限制。)

[root@fileserver root]# quotaon /home (现在启动磁盘空间限制。)

[root@fileserver root]# quotaon /home (已经启动磁盘空间限制啦,所以出现以下错误:)

quotaon: using /home/aquota.group on /dev/hda7: Device or resource busy

quotaon: using /home/aquota.user on /dev/hda7: Device or resource busy



推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
author-avatar
zhaoxiao2012_549
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有