• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

紧急求助,关于磁盘空间限制

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 22次 | 进入软件测试论坛讨论

领测软件测试网
如何限制某个目录占用的磁盘空间的大小(与用户名无关),比如说

/export/home/temp1  限制不超过100M
/export/home/temp2  不超过50M

 metor78 回复于:2003-07-07 10:38:07
这个我也不会哦,哪位大哥会,教我们吧!!!

 race 回复于:2003-07-07 10:42:30
系统管理书里面详细的过程

 laoxia 回复于:2003-07-07 10:45:41
只能分个区给这个目录了,分区的物理大小就是目录大小

 akai_feng 回复于:2003-07-07 10:46:10
能不能详细点说明一下

 laoxia 回复于:2003-07-07 10:46:25
那位大爷还有招吗?

 laoxia 回复于:2003-07-07 10:47:48
要不产生一个专用的user作为这个目录的属主,再设QUOTA

 akai_feng 回复于:2003-07-07 10:50:01
我有几十个目录,总不能分几十个区吧
建专用的user也行不通

 diag 回复于:2003-07-07 10:52:48
能写个SCRIPT 给 警告。。

做 强限制。。我不会。。

 akai_feng 回复于:2003-07-07 10:53:05
还有其他办法吗

或者谁知道有没有带这样功能的软件

 akai_feng 回复于:2003-07-07 10:56:26
警告没有用的,每人理

 sql2000 回复于:2003-07-07 11:08:13
[quote:01bf2488c7="laoxia"]要不产生一个专用的user作为这个目录的属主,再设QUOTA[/quote:01bf2488c7]  

把这个目录给某个group,为这个group设quota,好一些 ,不然能用这个目录的人太少了,不方便.

 akai_feng 回复于:2003-07-07 11:11:32
问题是除要限制的目录外,用户可以自由存取其他的目录,不受限制

 diag 回复于:2003-07-07 11:14:10
最苯的方法。。重装。。

cotoxx   /export/home/tmp1  500M
C0T0X0  /export/home/tmp2  200m
>>>>>>>>>>>>>>>>>>>

留一部分 HD 不用。。如果有新加的话。。

newfs  cotx0---

/etc/vfstab 
在加。。。。

 laoxia 回复于:2003-07-07 11:18:59
[quote:8a189730e1="akai_feng"]问题是除要限制的目录外,用户可以自由存取其他的目录,不受限制[/quote:8a189730e1]     你误会了,你产生一个用户,这个用户不是正常的用户,就是说他什么都不干,不作
认何操作,不TELNET,或说死用户,他存在的唯一目的就是他是某个目录的拥有者
来给这个目录设QUOTA

 diag 回复于:2003-07-07 11:22:28
chmod -R 777  QUOTA  

??????   

laoxia 这个不好吧。。。

 akai_feng 回复于:2003-07-07 11:31:02
[quote:38331116f4="laoxia"]    你误会了,你产生一个用户,这个用户不是正常的用户,就是说他什么都不干,不作
认何操作,不TELNET,或说死用户,他存在的唯一目的就是他是某个目录的拥有者
来给这个目录设QUOTA[/quote:38331116f4]     

其他用户怎么操作这个目录?owner不是他了

 jxbcpp 回复于:2003-07-07 12:51:32
用虚拟文件系统
先mkfile 指定大小的文件
然后用lofiadm做成虚拟文件系统,然后Mount    
具体步骤:
# cd /data
# mkfile 100m home0
# lofiadm -a /data/home0
/dev/lofi/1
# newfs /dev/rlofi/1
# mount /dev/lofi/1 /export/home0
# df -k
有个缺点,就是lofiadm创建的虚拟设备,如/dev/lofi/0,/dev/lofi/1等,系统重起后会丢失,但是文件(home0)的内容不会丢失,你需要创建脚本重新连接

#!/bin/sh
#/etc/rc2.d/S99lofidevice
#put this script at /etc/rc2.d

DEV0=`lofiadm -a /data/home0`
mount $DEV0 /export/home0

 akai_feng 回复于:2003-07-07 12:59:28
[quote:b28517e36a="jxbcpp"]用虚拟文件系统
先mkfile 指定大小的文件
然后用lofiadm做成虚拟文件系统,然后Mount[/quote:b28517e36a]     

你是指每一个目录都这么做吗?几十个(快超过100了)呀

 jxbcpp 回复于:2003-07-07 13:00:49
[quote:d98db3f653="akai_feng"]    

你是指每一个目录都这么做吗?几十个(快超过100了)呀[/quote:d98db3f653]     

那你用脚本来创建就可以了,不用手工挨个地来

 akai_feng 回复于:2003-07-07 13:04:37
[quote:bdce24774d="jxbcpp"]    

那你用脚本来创建就可以了,不用手工挨个地来[/quote:bdce24774d]     


忘了说明一下,是在NFS+NIS环境下,

如果在Server端做的话,客户端怎么mount

 jxbcpp 回复于:2003-07-07 13:07:56
[quote:452a294acd="akai_feng"]    


忘了说明一下,是在NFS+NIS环境下,

如果在Server端做的话,客户端怎么mount[/quote:452a294acd]     

你在NFS Server上mkfile好文件,然后share这些文件
NFS Client上,mountSERVER共享的文件,然后用lofiadm创建虚拟文件系统     

NFS Server上的操作:
# mkdir /data
# mkfile /data/home0
# share /data

NFS Client上的操作
# mount NFS-SERVER:/data /data
# lofiadm -a /data/home0
...
...     



由于NFS共享的文件不能被客户端用root存取,你得配置一下NFS SERVER,让它可以让客户端的root存取

 akai_feng 回复于:2003-07-07 13:28:27
[quote:dc785ada08="jxbcpp"]    

你在NFS Server上mkfile好文件,然后share这些文件
NFS Client上,mountSERVER共享的文件,然后用lofiadm创建虚拟文件系统     

NFS Server上的操作:
# mkdir /data
# mkfile /data/home0
# share /..........[/quote:dc785ada08]     

公司的网络不稳定,请见谅

本来server上share一个目录,这个目录下再建很多子目录,client端只用mount一个目录,就可以使用所有这些子目录,现在就是要限制这些子目录的大小,如果用你的方法,每个子目录多要做share和mount的动作,nfs 连接是不是多了点。

 jxbcpp 回复于:2003-07-07 13:35:18
[quote:4cd672df4a="akai_feng"]    

公司的网络不稳定,请见谅

本来server上share一个目录,这个目录下再建很多子目录,client端只用mount一个目录,就可以使用所有这些子目录,现在就是要限制这些子目录的大小,如果用你的方法,每个子目录..........[/quote:4cd672df4a]     

我说的是share服务器上的一个目录,这个目录里面有好多文件,文件就是mkfile出来的文件,而不是那些mount的虚拟文件系统

还有另外一种方法,就是你在NFS SERVER上做好虚拟文件系统,比如mkfile了一下几个文件
/data/home0、/data/home1、/data/home2
在NFS SERVER上相对应的虚拟文件系统挂接在:
/export/home/home0、/export/home/home1、/export/home/home2
这样你就只要share /export/home就可以,在客户端上mount NFS-SERVER:/export/home /export/home     

好像前一种方法太笨,呵呵,这种方法较好

 akai_feng 回复于:2003-07-07 13:41:29
[quote:3a86c85a21="jxbcpp"]    

我说的是share服务器上的一个目录,这个目录里面有好多文件,文件就是mkfile出来的文件,而不是那些mount的虚拟文件系统

还有另外一种方法,就是你在NFS SERVER上做好虚拟文件系统,比如mkfile了一下几个..........[/quote:3a86c85a21]     

好像可行

可不可以再详细点,你说的那条命令没用过

 jxbcpp 回复于:2003-07-07 13:43:16
已经很详细了啊,大哥!!!

前面我都写了具体的步骤了

 akai_feng 回复于:2003-07-07 13:47:52
老大,留个email吧

我先试试,有问题联系你

 jxbcpp 回复于:2003-07-07 13:49:20
[quote:fdac7f552a="akai_feng"]老大,留个email吧

我先试试,有问题联系你[/quote:fdac7f552a]     

jxbcpp@263.sina.com

 diag 回复于:2003-07-07 13:50:58
起个AUTOFS 吧。。。

 akai_feng 回复于:2003-07-07 16:20:09
[quote:6ddb865c80="diag"]起个AUTOFS 吧。。。[/quote:6ddb865c80]     

怎么说?

本来就已经在用autofs 了

 mmmmn 回复于:2003-07-07 19:31:14
试试这个,但我不知道他是不是真的有限制目录大小的功能,请把实验结果贴出来:
mkfile 30m aaa
mkdir bbb
ln aaa bbb

 wohoo 回复于:2003-07-07 21:03:05
mmmmn的好像不行...

 diag 回复于:2003-07-07 21:48:56
我试过了。。

NFS SERVER 上做 好。然后SHARE 出来。。

CLIENT 用AUTOFS 。。。OK。。。

 jxbcpp 回复于:2003-07-07 23:03:00
把整个试验过程的步骤都贴出来吧,谢谢!!!

 akai_feng 回复于:2003-07-08 09:24:27
[quote:20f17ffdd5="jxbcpp"]把整个试验过程的步骤都贴出来吧,谢谢!!![/quote:20f17ffdd5]     

客户端坐虚拟文件系统到是可以了,过程如前所述,可客户端有30几台那
我的NFS Server是2.6版本,找不到lofiadm命令,怎么才能在server端做?

 diag 回复于:2003-07-08 09:52:19
1) 

root@<.nets: 109> mkfiel 10m mkfile
 oot@<nets: 110> mkfile  10m date
root@<nets: 111> lofiadm -a /export/home15/date
/dev/lofi/1
root@<nets: 112> newfs 
root@<nets: 112> newfs /dev/lofi/1 
newfs: construct a new file system /dev/rlofi/1: (y/n)? y
/dev/rlofi/1:   20468 sectors in 34 cylinders of 1 tracks, 602 sectors
        10.0MB in 3 cyl groups (16 c/g, 4.70MB/g, 2240 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 9664, 19296,
root@<nets: 113> 

root@<nets: 119> mkdir mkfile
root@<nets: 120> cd ..
root@<nets: 121> ls
  home15/   
root@<nets: 122> mount /dev/lofi/1  /export/home15/mkfile/
root@<nets: 123> 

root@<nets: 119> mkdir mkfile
root@<nets: 120> cd ..
root@<nets: 122> mount /dev/lofi/1  /export/home15/mkfile/ 


/etc/dfs/sharetab 
/export/home15  -       nfs     o -rw ,anon=0      nets:/export/home15

2) 
 mavericks client 
 autofs mount 
 /etc/init.d/autofs start 
 /export/home15  -rw,intr        nets:/export/home15 

root@<mavericks: 69> cd /export/home15/mkfile/
root@<mavericks: 71> ls
root@<mavericks: 72> touch 1
root@<mavericks: 73> ls
1     



cp: /export/home15/mkfile/./8_Recommended/109007-09: No space left on device
cp: /export/home15/mkfile/./8_Recommended/108875-13: No space left on device

 wohoo 回复于:2003-07-08 09:54:46
按照jxbcpp 方法测试结束,ok

 akai_feng 回复于:2003-07-08 10:38:22
我的怎么不行

Server端的设置如上,client端的设置也一样,问题在于client端往/export/home15/mkfile中写数据时,好像是写到原来的磁盘空间里了,也就是/export/home15/mkfile本身的空间,而不是由/export/home/date做成的/dev/lofi/1中,

谁能解释一下

 diag 回复于:2003-07-08 10:48:20
mount 上了吗?  

应该是OK。/。我做了10M。。。

CP RECOMMAND 8 PATH 都说 空间不够。。。证明是OK 的。

 akai_feng 回复于:2003-07-08 10:59:30
[quote:da92dd1922="diag"]mount 上了吗?  

应该是OK。/。我做了10M。。。

CP RECOMMAND 8 PATH 都说 空间不够。。。证明是OK 的。[/quote:da92dd1922]   

步骤如下:

Server:

#cd /export/home
#mkdir vfs
#cd vfs
#mkfile 20m v1
#lofiadm -a /export/home/vfs/v1
#newfs /dev/lofi/1
#pwd
/export/home/vfs
#cd ..
#mkdir share
#cd share
#mkdir h1
#mount /dev/lofi/1 /export/home/share/h1
#share -F nfs -o rw /export/home/share

Client

#cd /tmp
#mkdir temp
#mount Server:/export/home/share /tmp/temp
#cd temp
#ls
h1
#cd h1
#touch test
#ls
test

其中省略关于权限设置的部分,问题是

Server端

#cd /export/home/share/h1
#ls
lost+found
没有刚刚touch 的 test
#cd ..
#umount /export/home/share/h1
#cd h1
#ls 
test
出来了

你那边不是这样吗?

 diag 回复于:2003-07-08 11:07:33
是。。SERVER 上看的 和CLIENT 上看的不样。。


但是两个CLIENT 上看的样。

 akai_feng 回复于:2003-07-08 11:17:44
问题我做copy,没有遇到no space left

 diag 回复于:2003-07-08 11:30:02
20 M 不小。。你COPY 个大的东东 看。。。

 jxbcpp 回复于:2003-07-08 12:47:27
[quote:182cdc81cc="akai_feng"]我的怎么不行

Server端的设置如上,client端的设置也一样,问题在于client端往/export/home15/mkfile中写数据时,好像是写到原来的磁盘空间里了,也就是/export/home15/mkfile本身的空间,而不是由/export/home/d..........[/quote:182cdc81cc]     

/dev/lofi/1这样的只是个设备文件,指向的是mkfile的空间。数据当然是存储在mkfile出来的那个文件啦!

/dev/lofi/1的空间大小就是mkfile出来的文件的大小     

测试方法可以是mount 上/dev/lofi/1 设备后,在这个设备mount所在的目录上mkfile大文件

 akai_feng 回复于:2003-07-08 12:49:22
[quote:544815fc75="diag"]20 M 不小。。你COPY 个大的东东 看。。。[/quote:544815fc75]     

没有用的

不过我找到问题点了

Server上share的目录如果是虚拟盘本身,就可以了,如
share -F nfs -o rw /export/home/share/h1
而不是
share -F nfs -o rw /export/home/share

这样的话,又回到老问题了,nfs连接太多

 diag 回复于:2003-07-08 12:59:04
/export/home15 - nfs -o rw ,anon=0 nets:/export/home15 

我就是SHARE 的 整个 EXPORT/HOME

没你的问题。。。

 akai_feng 回复于:2003-07-08 13:02:43
[quote:223e0730f8="jxbcpp"]    

/dev/lofi/1这样的只是个设备文件,指向的是mkfile的空间。数据当然是存储在mkfile出来的那个文件啦!

/dev/lofi/1的空间大小就是mkfile出来的文件的大小     

测试方法可以是mount 上/dev/lofi/1 设?.........[/quote:223e0730f8]     

share出去后,client端看到的就不一样了,如果share的是上一层目录,没有用,只能share/dev/lofi/1的安装点的那个目录,这样client端才有容量限制

 jxbcpp 回复于:2003-07-08 13:43:03
[quote:bf6a294509="akai_feng"]    

share出去后,client端看到的就不一样了,如果share的是上一层目录,没有用,只能share/dev/lofi/1的安装点的那个目录,这样client端才有容量限制[/quote:bf6a294509]     

为什么share上层目录不行啊?测试过吗?

我没法做试验,只是觉得好像应该可以,因为存储的东西都是相同的!

 diag 回复于:2003-07-08 13:48:02
我试过不可以。。

CLIENT 上看到的。。

和 SERVER 看的不样。。

 maiku 回复于:2003-07-08 16:06:32
volume manager

 akai_feng 回复于:2003-07-08 17:34:03
[quote:faf06b57b5="jxbcpp"]    

为什么share上层目录不行啊?测试过吗?

我没法做试验,只是觉得好像应该可以,因为存储的东西都是相同的![/quote:faf06b57b5]     

最新说法

不行是应该的,因为share的目录最上只能到文件系统的安装点,不能包含多个文件系统,这一点应该是好理解的,只是以前没遇见这种情况,没反应过来。

 jxbcpp 回复于:2003-07-08 23:07:08
[quote:f57169f1cf="akai_feng"]    

最新说法

不行是应该的,因为share的目录最上只能到文件系统的安装点,不能包含多个文件系统,这一点应该是好理解的,只是以前没遇见这种情况,没反应过来。[/quote:f57169f1cf]     

对对的,忘了着茬了,呵呵

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网