MOON
Server: Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
System: Linux csr818.wilogic.com 2.6.18-419.el5xen #1 SMP Fri Feb 24 22:50:37 UTC 2017 x86_64
User: digitals (531)
PHP: 5.4.45
Disabled: NONE
Upload Files
File: //scripts.20110531.215904.25158/quota_auto_fix
#!/usr/bin/perl
# cpanel - quota_auto_fix                         Copyright(c) 2010 cPanel, Inc.
#                                                           All rights Reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cpanel license. Unauthorized copying is prohibited

# This script auto repairs quotas when they become severely corrupted.

BEGIN { unshift @INC, '/usr/local/cpanel'; }

use strict;
use Cpanel::FindBin ();

my $repquota_cmd = Cpanel::FindBin::findbin( 'repquota' );
if ( !-x $repquota_cmd ) {
    print "Unable to locate repquota command.\n";
    exit 1;
}

my $broken = 0;
my $signal = 0;
my $zpid = open READCHLD, '-|';
if ( $zpid ) { 
    while ( <READCHLD> ) {
        if ( /^quota_auto_fix signal: (\d+)/ ) {
            $signal = $1;
        }
        elsif ( /has wrong format/i ) {
            print;
            $broken = 1;
        }
        elsif ( /Quota file not found/i ) {
            print;
            $broken = 1;
        }
    }
}
else {
    open STDERR, ">&STDOUT";
    system $repquota_cmd, '-a';
    my $rsignal = ( $? & 127 );
    print "quota_auto_fix signal: $rsignal\n";
    exit 0;
}

if ( $broken ) {
    system '/scripts/fixquotas';
}
elsif ( $signal == 11 ) {
    print "repquota exited with signal 11 ... rebuilding quota databases.\n";
    system '/scripts/fixquotas';
}
else {
    print "quota test: check passed\n";
}