- 论坛徽章:
- 0
|
我最终做出来了,不知道有没有人有同样的需求,在这里发布一下,有需要的朋友可以交流一下。
http://search.cpan.org/dist/Quota/
先安装这个,然后控制就很方便了。
use blib "/usr/lib/perl5/site_perl/5.8.8/blib";
use Quota;
$dev = Quota::getqcarg(".");
$task = @ARGV[0];
if($task eq 'get') {
$uid = @ARGV[1];
&print_usage() unless $uid =~ /\d+/ && @ARGV==2;
@limits = &getquota($uid);
print "@limits\n";
} elsif ($task eq 'set') {
&print_usage() unless @ARGV==3;
$uid = @ARGV[1];
$limits = @ARGV[2];
$result = &setquota($uid, $limits);
} else {
&print_usage();
}
sub getquota {
$uid = @_[0];
($bc,$bs,$bh,$bt,$fc,$fs,$fh,$ft) = Quota::query($dev, $uid);
($bc,$bs,$bh,$bt,$fc,$fs,$fh,$ft);
}
##
## set quota block & file limits for user
##
## bs,bh,fs,fh
sub setquota {
$uid = @_[0];
$in = @_[1];
$success = Quota::setqlim($dev, $uid, split(/\s*,\s*/, $in), 1);
Quota::sync($dev) && ($! != 1) && die "Quota::sync: ".Quota::strerr."\n";
$success;
}
sub print_usage {
print "ZH Panel Quota Tools Set\n";
print "Usage: \n";
print "Get Quota Limits: $0 get uid\n";
print "Set Quota Limits: $0 set uid bs,bh,fs,fh\n\n";
print "Example: \n$0 get 9494\n$0 set 9494 1000000,1000000,10000,10000\n";
exit 1;
}
|
|
|