<html>
<body>
Patrick,<br><br>
This is great. However, what about the situation in which booting
into single user mode is really not possible since remote management is
the only realistic option? SOme of us can easily walk up to the
system others have systems in data centers that may be difficult or
costly to get to.<br><br>
<br><br>
-Rashid<br><br>
At 02:46 AM 2/23/2006, you wrote:<br><br>
<blockquote type=cite class=cite cite="">Hi,<br><br>
Silly mistake.<br>
Causing Group quota not to sync.<br><br>
Have fixed that<br><br>
<br>
#!/usr/bin/perl -w -I/usr/sausalito/perl
-I/usr/sausalito/handlers/base/vsite<br>
#<br>
####### meta-verify, version 0.02a<br>
#<br>
# <br>
# system(OS) & database(codb aka meta) verification and
integrity check utility<br>
# for the Cobalt 550 / Bluequartz product family<br>
#<br>
# Patrick Ong Tiong Heng (patricko (at mark) staff.singnet.com.sg)<br>
#<br>
#<br>
#<br>
####### OPERATION<br>
#<br>
# meta-verify -u -q | -s -q | -a | [-v] [-h] <br>
# <br>
# -u user<br>
# -s virtual site<br>
#<br>
# -q quota<br>
# -a all | users + virtual sites <br>
#<br>
# -v verbose <br>
# -h usage help<br>
#<br>
#<br>
#<br>
####### DESCRIPTION<br>
#<br>
#<br>
# Actually, this script should call system-verify as it attempts to
detect and <br>
# repair coherency problems between the state saved in the database
and <br>
# the system configuration state. In order to let cobalt users feel
"at home",<br>
# I decided to retain the name: meta-verify.<br>
#<br>
# - (KIV) Verify and repair virtual sites.<br>
# - (KIV) Verify and repair user accounts.<br>
# - (KIV )Maintain intergrity of the RaQ system configuration
files.<br>
# - (Partial - Only Quota) Ensure coherency between System and
Meta/quota backend.<br>
#<br>
#<br>
####### INSTRUCTION<br>
#<br>
# For fixing corrupted User,Group Quotas, boot server to Single
mode.<br>
# And run:<br>
#<br>
# 1)<br>
# quotacheck /home<br>
# quotacheck -g /home<br>
#<br>
# 2)<br>
# Reboot.<br>
#<br>
# 3)<br>
# Run: metaverify -a and wait (process will printout set Quotas without
errors)<br>
# Sync, sync, sync. And reboot again.<br>
#<br>
# 4)<br>
# Run: repquota /home (integrity checking)<br>
# make sure SITExx-logs, admin accounts DO NOT HAVE quota.<br>
# if there are some entries, remove them manually via edquota<br>
#<br>
# <br>
####### SUPPORTED SYSTEMS<br>
#<br>
# Cobalt 550, Bluequartz<br>
#<br>
#<br>
####### CHANGELOG<br>
#<br>
#<br>
# version 0.02a (Feb 23 2006)<br>
# - Fixed typo, Group quota not able to sync from Meta to
Disk<br>
# - Added INSTRUCTION section<br>
#<br>
# version 0.01a (Feb 21 2006)<br>
# - initial creation alpha<br>
#<br>
#<br>
#######<br><br>
BEGIN {<br>
require CCE;<br>
require Quota;<br>
<br>
use Getopt::Std;<br><br>
use vars qw($TITLE $VERSION $AUTHOR
$COPYRIGHT);<br><br>
$TITLE =
"meta-verify";<br>
$VERSION =
"0.01a";<br>
$AUTHOR = "Patrick
Ong Tiong Heng (patricko\ (at mark) staff.singnet.com.sg)";<br>
$COPYRIGHT =
"bluequartz.org";<br>
}<br><br>
<br>
use CCE;<br>
use strict;<br>
use Quota;<br><br>
my $path = "/home";<br>
my $dev;<br>
my $uid = "";<br>
my $uqs = "";<br>
my $uqh = "";<br>
my $siteUID = "";<br>
my $userUID = "";<br><br>
use vars qw($opt_u $opt_s $opt_q $opt_a $opt_h $Verbose);<br><br>
<br><br>
<br><br>
# command-line arguments, verbose level<br>
getopts("usqavh");<br>
<br>
# usage help<br>
&usage if ($opt_h);<br><br>
if ($opt_a) {<br>
&meta2system();<br>
}<br>
elsif ($opt_u) {<br>
print "KIV\n";<br>
}<br>
elsif ($opt_s) {<br>
print "KIV\n";<br>
}<br>
elsif ($opt_q) {<br>
print "KIV\n";<br>
}<br>
elsif ($Verbose) {<br>
print "KIV\n";<br>
}<br>
else {<br>
&usage;<br>
}<br>
print "\n" unless ($Verbose);<br>
exit 0;<br><br>
1;<br><br>
<br>
sub usage ()<br>
{<br><br>
printf("\n");<br>
printf(" usage: %s [options]\n",
$TITLE);<br>
printf("\n");<br>
printf(" -u
user\n");<br>
printf(" -s virtual
site\n");<br>
printf("\n");<br>
printf(" -q
quota\n");<br>
printf(" -a all \| users
+ virtual sites\n");<br>
printf("\n");<br>
printf(" -v
verbose\n");<br>
printf(" -h
help\n");<br>
printf("\n");<br>
exit 1;<br>
}<br><br>
<br><br>
sub meta2system()<br>
{<br><br>
my $cce = new CCE;<br>
$cce->connectuds();<br>
my @vsites;<br>
my @vsitelist;<br>
my @userlist;<br>
my $hostname=`hostname`;<br>
chomp($hostname);<br><br>
$dev = Quota::getqcarg($path) || die "$path:
$!\n";<br><br>
<br>
### Find Domain records<br><br>
@vsitelist = $cce->findx('Vsite');<br>
foreach my $vsite (@vsitelist) { <br>
my @userlist;<br>
my $siteNum;<br>
my $userNum;<br>
my $fqdn;<br>
my $domain;<br>
my $vsitequota;<br>
my $vsitequotaExtra;<br>
my $userquota;<br>
my $userquotaExtra;<br>
my ($ok, $object, $old, $new) = $cce->get($vsite);<br>
my ($vDiskok, $vDiskobject, $vDiskold, $vDisknew) =
$cce->get($vsite, "Disk");<br><br>
$siteNum="${%{$object}}{'name'}";<br>
$domain="${%{$object}}{'domain'}";<br>
$fqdn="${%{$object}}{'fqdn'}";<br>
$vsitequota="${%{$vDiskobject}}{'quota'}";<br>
$vsitequota*=1024;<br>
$vsitequotaExtra=$vsitequota;<br>
$vsitequotaExtra+=1024;<br><br>
$siteUID = `quota -g $siteNum | head -1 | awk -F \"gid
\" '{print \$2}' | awk -F \"): \" '{print \$1}'` ;<br>
chomp($siteUID);<br>
$uid = $siteUID;<br>
$uqs = $vsitequota;<br>
$uqh = $vsitequotaExtra;<br><br>
unless(Quota::setqlim($dev, $uid, $uqs, $uqh, 0, 0, 0, 1)) {<br>
print "Quota set for $uid,
$domain, $siteNum, QUOTA\: $vsitequota\n";<br>
}<br>
print $fqdn." ".$siteUID."
".$siteNum." ".$vsitequota."
".$vsitequotaExtra."\n";<br><br>
<br>
### Find User account<br><br>
@userlist = $cce->findx('User', {"site" =>
"$siteNum"} );<br><br>
foreach my $user (@userlist) { <br>
my ($userOK, $userOBJ, $userOLD, $userNEW) =
$cce->get($user);<br>
my ($userDiskOK, $userDiskOBJ, $userDiskOLD,
$userDiskNEW) = $cce->get($user, "Disk");<br>
#print
"${%{$userOBJ}}{name}"." (at mark) "."$domain\n";<br>
$userNum="${%{$userOBJ}}{'name'}";<br>
$userquota="${%{$userDiskOBJ}}{'quota'}";<br>
$userquota*=1024;<br>
$userquotaExtra=$userquota;<br>
$userquotaExtra+=1024;<br><br>
<br>
$userUID = `quota $userNum | head -1 | awk -F
\"uid \" '{print \$2}' | awk -F \"): \" '{print
\$1}'` ;<br>
chomp($userUID);<br>
$uid = $userUID;<br>
$uqs = $userquota;<br>
$uqh = $userquotaExtra;<br><br>
unless(Quota::setqlim($dev, $uid, $uqs, $uqh, 0, 0))
{<br>
print
"Quota set for $uid, $domain, $userNum, QUOTA\:
$userquota\n";<br>
}<br>
print $fqdn." ".$userUID."
".$userNum." ".$userquota."
".$userquotaExtra."\n";<br>
}<br><br>
}<br><br>
$cce->bye('SUCCESS');<br>
#exit(0);<br>
exit(1);<br><br>
}<br><br>
<br><br>
<br><br>
<br><br>
<br><br>
<br><br>
<br><br>
<br><br>
<br><br>
<br><br>
<br><br>
<br><br>
<br>
Cheers<br>
patrick<br><br>
<br><br>
<br><br>
<br><br>
<br><br>
On Tue, 21 Feb 2006 21:37:31 +0800<br>
patricko <patricko (at mark) staff.singnet.com.sg> wrote:<br><br>
> Hi,<br>
> <br>
> Forgotten to add:<br>
> <br>
> after meta-verify, run<br>
> repquota /home
(integrity checking)<br>
> <br>
> <br>
> <br>
> make sure SITExx-logs DO NOT HAVE quota.<br>
> if there are some entries, remove them manually via edquota<br>
> <br>
> <br>
> <br>
> Cheers<br>
> patrick<br>
> <br>
> <br>
> <br>
> <br>
> <br>
> On Tue, 21 Feb 2006 21:33:26 +0800<br>
> patricko <patricko (at mark) staff.singnet.com.sg> wrote:<br>
> <br>
> > Hi,<br>
> > <br>
> > Bluequartz DB out-of-sync with System-OS quota<br>
> > is a reality.(Personal experienced the below mentioned
issue)<br>
> > <br>
> > <br>
> > Its an OS issue relating to ext3. The inodes or the
superblocks<br>
> > are "dirty" causing "extra invisible users"
or "grand total of all users quota NOT equal to domain quota"
<br>
> > <br>
> > <br>
> > <br>
> > So we need to go a quota check as follow:<br>
> > <br>
> > [Single mode]<br>
> > quotacheck /home<br>
> > quotacheck -g /home<br>
> > <br>
> > <br>
> > <br>
> > Sometimes, the system quotas are corrupted.<br>
> > Therefore, you need my meta-verify to SYNC <br>
> > the data back.<br>
> > <br>
> > <br>
> > <br>
> > <br>
> > Cheers<br>
> > patrick<br>
> > <br>
> > <br>
> > <br>
> > <br>
> > <br>
> > <br>
> > On Tue, 21 Feb 2006 20:28:10 +0800<br>
> > patricko <patricko (at mark) staff.singnet.com.sg> wrote:<br>
> > <br>
> > > Hi Blues,<br>
> > > <br>
> > > <br>
> > > I have written a meta-verify utility for Bluequartz.<br>
> > > It is in still development. <br>
> > > ***But the basic CODB-meta -> system-OS is working***
<br>
> > > <br>
> > > <br>
> > > The logic for writing meta-verify is because OS and
CODB-meta<br>
> > > can be out-of-sync, especially system quota (when
corrupted with quotacheck) with CODB.<br>
> > > <br>
> > > <br>
> > > <br>
> > > ps: Gavin, you can use this script to sync BQ-DB with
system quotas.<br>
> > > <br>
> > > <br>
> > > <br>
> > >
>>>>>>>>>>>>>>>>>>>>>>meta-verify>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><br>
> > > <br>
> > > #!/usr/bin/perl -w -I/usr/sausalito/perl
-I/usr/sausalito/handlers/base/vsite<br>
> > > #<br>
> > > ####### meta-verify, version 0.01a<br>
> > > #<br>
> > > # <br>
> > > # system(OS) & database(codb aka meta)
verification and integrity<br>
> > > check utility<br>
> > > # for the Cobalt 550 / Bluequartz product
family<br>
> > > #<br>
> > > # Patrick Ong Tiong Heng
(patricko (at mark) staff.singnet.com.sg)<br>
> > > #<br>
> > > #<br>
> > > #<br>
> > > ####### OPERATION<br>
> > > #<br>
> > > # meta-verify -u -q | -s -q | -a | [-v] [-h] <br>
> > > # <br>
> > > # -u user<br>
> > > # -s virtual site<br>
> > > #<br>
> > > # -q quota<br>
> > > # -a all | users + virtual
sites <br>
> > > #<br>
> > > # -v verbose <br>
> > > # -h usage help<br>
> > > #<br>
> > > #<br>
> > > #<br>
> > > ####### DESCRIPTION<br>
> > > #<br>
> > > #<br>
> > > # Actually, this script should call system-verify as
it attempts to<br>
> > > detect and <br>
> > > # repair coherency problems between the state saved
in the database<br>
> > > and <br>
> > > # the system configuration state. In order to let
cobalt users feel<br>
> > > "at home",<br>
> > > # I decided to retain the name: meta-verify.<br>
> > > #<br>
> > > # - (KIV) Verify and repair virtual sites.<br>
> > > # - (KIV) Verify and repair user accounts.<br>
> > > # - (KIV )Maintain intergrity of the RaQ system
configuration files.<br>
> > > # - (Partial - Only Quota) Ensure coherency between
System and<br>
> > > Meta/quota backend.<br>
> > > #<br>
> > > #<br>
> > > ####### SUPPORTED SYSTEMS<br>
> > > #<br>
> > > # Cobalt 550, Bluequartz<br>
> > > #<br>
> > > #<br>
> > > ####### CHANGELOG<br>
> > > #<br>
> > > #<br>
> > > # version 0.01a (Feb 21 2006)<br>
> > > # - initial creation alpha<br>
> > > #<br>
> > > #<br>
> > > #######<br>
> > > <br>
> > > BEGIN {<br>
> > > require CCE;<br>
> > > require Quota;<br>
> > > <br>
> > > use Getopt::Std;<br>
> > > <br>
> > > use vars qw($TITLE $VERSION
$AUTHOR $COPYRIGHT);<br>
> > > <br>
> > >
$TITLE =
"meta-verify";<br>
> > > $VERSION =
"0.01a";<br>
> > >
$AUTHOR = "Patrick Ong Tiong Heng
(patricko\ (at mark) staff.singnet.com.sg)";<br>
> > > $COPYRIGHT =
"bluequartz.org";<br>
> > > }<br>
> > > <br>
> > > <br>
> > > use CCE;<br>
> > > use strict;<br>
> > > use Quota;<br>
> > > <br>
> > > my $path = "/home";<br>
> > > my $dev;<br>
> > > my $uid = "";<br>
> > > my $uqs = "";<br>
> > > my $uqh = "";<br>
> > > my $siteUID = "";<br>
> > > my $userUID = "";<br>
> > > <br>
> > > use vars qw($opt_u $opt_s $opt_q $opt_a $opt_h
$Verbose);<br>
> > > <br>
> > > <br>
> > > <br>
> > > # command-line arguments, verbose level<br>
> > > getopts("usqavh");<br>
> > > <br>
> > > # usage help<br>
> > > &usage if ($opt_h);<br>
> > > <br>
> > > if ($opt_a) {<br>
> > > &meta2system();<br>
> > > }<br>
> > > elsif ($opt_u) {<br>
> > > print "KIV\n";<br>
> > > }<br>
> > > elsif ($opt_s) {<br>
> > > print "KIV\n";<br>
> > > }<br>
> > > elsif ($opt_q) {<br>
> > > print "KIV\n";<br>
> > > }<br>
> > > elsif ($Verbose) {<br>
> > > print "KIV\n";<br>
> > > }<br>
> > > else {<br>
> > > &usage;<br>
> > > }<br>
> > > print "\n" unless ($Verbose);<br>
> > > exit 0;<br>
> > > <br>
> > > 1;<br>
> > > <br>
> > > <br>
> > > sub usage ()<br>
> > > {<br>
> > > <br>
> > > printf("\n");<br>
> > > printf(" usage: %s
[options]\n", $TITLE);<br>
> > > printf("\n");<br>
> > > printf("
-u user\n");<br>
> > > printf("
-s virtual site\n");<br>
> > > printf("\n");<br>
> > > printf("
-q quota\n");<br>
> > > printf("
-a all \| users + virtual sites\n");<br>
> > > printf("\n");<br>
> > > printf("
-v verbose\n");<br>
> > > printf("
-h help\n");<br>
> > > printf("\n");<br>
> > > exit 1;<br>
> > > }<br>
> > > <br>
> > > <br>
> > > <br>
> > > <br>
> > > sub meta2system()<br>
> > > {<br>
> > > <br>
> > > my $cce = new CCE;<br>
> > > $cce->connectuds();<br>
> > > my @vsites;<br>
> > > my @vsitelist;<br>
> > > my @userlist;<br>
> > > my $hostname=`hostname`;<br>
> > > chomp($hostname);<br>
> > > <br>
> > > $dev = Quota::getqcarg($path) || die "$path:
$!\n";<br>
> > > <br>
> > > <br>
> > > ### Find Domain records<br>
> > > <br>
> > > @vsitelist = $cce->findx('Vsite');<br>
> > > foreach my $vsite (@vsitelist) { <br>
> > > my @userlist;<br>
> > > my $siteNum;<br>
> > > my $userNum;<br>
> > > my $fqdn;<br>
> > > my $domain;<br>
> > > my $vsitequota;<br>
> > > my $vsitequotaExtra;<br>
> > > my $userquota;<br>
> > > my $userquotaExtra;<br>
> > > my ($ok, $object, $old, $new) =
$cce->get($vsite);<br>
> > > my ($vDiskok, $vDiskobject, $vDiskold,
$vDisknew) = $cce->get($vsite, "Disk");<br>
> > > <br>
> > >
$siteNum="${%{$object}}{'name'}";<br>
> > >
$domain="${%{$object}}{'domain'}";<br>
> > > $fqdn="${%{$object}}{'fqdn'}";<br>
> > >
$vsitequota="${%{$vDiskobject}}{'quota'}";<br>
> > > $vsitequota*=1024;<br>
> > > $vsitequotaExtra=$vsitequota;<br>
> > > $vsitequotaExtra+=1024;<br>
> > > <br>
> > > $siteUID = `quota -g $siteNum | head -1 | awk
-F \"gid \" '{print \$2}' | awk -F \"): \" '{print
\$1}'` ;<br>
> > > chomp($siteUID);<br>
> > > $uid = $siteUID;<br>
> > > $uqs = $vsitequota;<br>
> > > $uqh = $vsitequotaExtra;<br>
> > > <br>
> > > unless(Quota::setqlim($dev, $uid, $uqs, $uqh,
0, 0)) {<br>
> > > print
"Quota set for $uid, $domain, $siteNum, QUOTA\:
$vsitequota\n";<br>
> > > }<br>
> > > print $fqdn."
".$siteUID." ".$siteNum." ".$vsitequota."
".$vsitequotaExtra."\n";<br>
> > > <br>
> > > <br>
> > > <br>
> > > <br>
> > > <br>
> > > ### Find User account<br>
> > > <br>
> > > @userlist = $cce->findx('User',
{"site" => "$siteNum"} );<br>
> > > <br>
> > > foreach my $user (@userlist) { <br>
> > > my ($userOK, $userOBJ, $userOLD,
$userNEW) = $cce->get($user);<br>
> > > my ($userDiskOK, $userDiskOBJ,
$userDiskOLD, $userDiskNEW) = $cce->get($user, "Disk");<br>
> > > #print
"${%{$userOBJ}}{name}"." (at mark) "."$domain\n";<br>
> > >
$userNum="${%{$userOBJ}}{'name'}";<br>
> > >
$userquota="${%{$userDiskOBJ}}{'quota'}";<br>
> > > $userquota*=1024;<br>
> > > $userquotaExtra=$userquota;<br>
> > > $userquotaExtra+=1024;<br>
> > > <br>
> > > <br>
> > > $userUID = `quota $userNum | head
-1 | awk -F \"uid \" '{print \$2}' | awk -F \"): \"
'{print \$1}'` ;<br>
> > > chomp($userUID);<br>
> > > $uid = $userUID;<br>
> > > $uqs = $userquota;<br>
> > > $uqh = $userquotaExtra;<br>
> > > <br>
> > > unless(Quota::setqlim($dev, $uid,
$uqs, $uqh, 0, 0)) {<br>
> >
>
print "Quota set for $uid, $domain, $userNum, QUOTA\:
$userquota\n";<br>
> > > }<br>
> > > print $fqdn."
".$userUID." ".$userNum." ".$userquota."
".$userquotaExtra."\n";<br>
> > > }<br>
> > > <br>
> > > }<br>
> > > <br>
> > > $cce->bye('SUCCESS');<br>
> > > #exit(0);<br>
> > > exit(1);<br>
> > > <br>
> > > }<br>
> > > <br>
> > > <br>
> > > ### Find User account<br>
> > > <br>
> > > @userlist = $cce->findx('User',
{"site" => "$siteNum"} );<br>
> > > <br>
> > > foreach my $user (@userlist) { <br>
> > > my ($userOK, $userOBJ, $userOLD,
$userNEW) = $cce->get($user);<br>
> > > my ($userDiskOK, $userDiskOBJ,
$userDiskOLD, $userDiskNEW) = $cce->get($user, "Disk");<br>
> > > #print
"${%{$userOBJ}}{name}"." (at mark) "."$domain\n";<br>
> > >
$userNum="${%{$userOBJ}}{'name'}";<br>
> > >
$userquota="${%{$userDiskOBJ}}{'quota'}";<br>
> > > $userquota*=1024;<br>
> > > $userquotaExtra=$userquota;<br>
> > > $userquotaExtra+=1024;<br>
> > > <br>
> > > <br>
> > > $userUID = `quota $userNum | head
-1 | awk -F \"uid \" '{print \$2}' | awk -F \"): \"
'{print \$1}'` ;<br>
> > > chomp($userUID);<br>
> > > $uid = $userUID;<br>
> > > $uqs = $userquota;<br>
> > > $uqh = $userquotaExtra;<br>
> > > <br>
> > > unless(Quota::setqlim($dev, $uid,
$uqs, $uqh, 0, 0)) {<br>
> >
>
print "Quota set for $uid, $domain, $userNum, QUOTA\:
$userquota\n";<br>
> > > }<br>
> > > print $fqdn."
".$userUID." ".$userNum." ".$userquota."
".$userquotaExtra."\n";<br>
> > > }<br>
> > > <br>
> > > }<br>
> > > <br>
> > > $cce->bye('SUCCESS');<br>
> > > #exit(0);<br>
> > > exit(1);<br>
> > > <br>
> > > }<br>
> > > <br>
> > > <br>
> > > <br>
> > >
>>>>>>>>>>>>>>>END>>>>>>>meta-verify>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><br>
> > > <br>
> > > <br>
> > > Cheers<br>
> > > patrick<br>
> > > <br>
> > > <br>
> > > <br>
> > > <br>
> > > <br>
> > > <br>
> > > <br>
> > > On Wed, 1 Feb 2006 00:59:00 +0800 (SGT)<br>
> > > patricko (at mark) staff.singnet.com.sg wrote:<br>
> > > <br>
> > > > Some ideas,<br>
> > > > <br>
> > > > use bluequartz system quota.<br>
> > > > Run a script read out all system quotas and<br>
> > > > re-populate via edquota.<br>
> > > > <br>
> > > > <br>
> > > > or during maintenance night.<br>
> > > > Export all domain out via cmuExport.<br>
> > > > <br>
> > > > then<br>
> > > > try destroy one domain and import it back.<br>
> > > > ~check: quota in tact? if so, continue with
others<br>
> > > > <br>
> > > > or else you need to do up another server and move
all<br>
> > > > domains over as OS level - quota are broken beyond
repair<br>
> > > > <br>
> > > > Cheers<br>
> > > > patrick <br>
> > > > <br>
> > > > <br>
> > > > <br>
> > > > <br>
> > > > <br>
> > > > <br>
> > > > <br>
> > > > <br>
> > > > <br>
> > > > <br>
> > > > <br>
> > > > <br>
> > > > On Tue, 31 Jan 2006, Gavin Nelmes-Crocker wrote:<br>
> > > > <br>
> > > > > Guys<br>
> > > > > <br>
> > > > > I did something very bad<br>
> > > > > <br>
> > > > > /sbin/quotacheck -c -u -g -a -v -f -m<br>
> > > > > <br>
> > > > > The background to this was that I had users
showing up using far more disk<br>
> > > > > space that they really were, this used to happen
on RaQ4's as well.<br>
> > > > > <br>
> > > > > I started of with /sbin/quotacheck -c -u
-g -a -v<br>
> > > > > <br>
> > > > > but it complained that I had to force it so I
added -f then it complained<br>
> > > > > that it could mount /home as read only but to
force I could add -m and I<br>
> > > > > did.<br>
> > > > > <br>
> > > > > Great - the problem was sorted<br>
> > > > > <br>
> > > > > DISASTER - I go back into the GUI and it looks
correct except I see that<br>
> > > > > everyone now has unlimited quota. If I
edit a user I see that their<br>
> > > > > original quota amount is still there (presumably
from the database) so is<br>
> > > > > there a way to rewrite it all back to the system
or do I have to go into<br>
> > > > > each user change their quota and then save.<br>
> > > > > <br>
> > > > > There are several hundred users on the box - so
I really don't want to have<br>
> > > > > to edit every single one if I can avoid it
:-)<br>
> > > > > <br>
> > > > > I think the mistake was -c I think I should have
used /sbin/quotacheck -u<br>
> > > > > -g -a -v -f -m<br>
> > > > > <br>
> > > > > Thanks<br>
> > > > > <br>
> > > > > Gavin<br>
> > > > > <br>
> > > > > <br>
> > > > </blockquote>
<x-sigsep><p></x-sigsep>
***************************************************************** <br>
MuntadaNet Web Hosting and Web Design Services<br>
<font color="#0000FF"><u>
<a href="http://www.muntada.com/" eudora="autourl">
http://www.muntada.com<br><br>
</a></u></font>Sales - sales (at mark) muntada.com <br>
Support - support (at mark) muntada.com <br>
Billing - billing (at mark) muntada.com<br><br>
Main Office - 808-689-6092<br>
Fax - (808) 356-0279<br>
*****************************************************************<br><br>
</body>
</html>