403Webshell
Server IP : 103.119.228.120  /  Your IP : 3.144.122.20
Web Server : Apache
System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User : nobody ( 99)
PHP Version : 5.6.40
Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime
MySQL : ON |  cURL : ON |  WGET : ON |  Perl : ON |  Python : ON |  Sudo : ON |  Pkexec : ON
Directory :  /scripts/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

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

# cpanel - scripts/fix_innodb_tables               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

package scripts::fix_innodb_tables;

use strict;

use Cpanel::MysqlUtils::Connect ();
use Cpanel::MysqlUtils::Quote   ();
use Cpanel::Config::LoadCpConf  ();
use Cpanel::Logger              ();
use Cpanel::Usage               ();

our $cpconf             = Cpanel::Config::LoadCpConf::loadcpconf();
our $configured_version = $cpconf->{'mysql-version'};
our $logger             = Cpanel::Logger->new();

exit( run() ) unless caller();

sub usage {
    print <<USAGE;
    $0 [--anyversion] [--help]
        Repairs InnoDB tables after upgrade from MySQL 5.0 to MySQL 5.1
        or from 4.1 to 5.0.

        Only will run if you are on MySQL 5.1 or MySQL 5.0, set
        --anyversion if you want to run this on a different version.

        NOTE: this will rebuild each table and may not correct serious
        corruptions.   This is designed more as an upgrade task then
        a real repair.

USAGE

    exit 0;
}

sub run {
    my $anyversion = 0;

    my $opts = {
        anyversion => \$anyversion,
    };

    Cpanel::Usage::wrap_options( \@ARGV, \&usage, $opts );

    # we only need to perform this task when upgrading to 5.0 or 5.1
    # in that version the InnoDB tables are left in a repair mode
    # after the upgrade.   MySQL 4.1 does not have the information schema
    # table for us to operate on so do not run on MySQL 4.1.

    if ( $anyversion == 0 && ( $configured_version gt "5.1" || $configured_version lt "5.0" ) ) {
        print "Designed to run on MySQL 5.0 or 5.1 during an upgrade\n";
        return 1;
    }

    $logger->info("fix_innodb_tables called :$configured_version:");

    print "Repairing InnoDB tables after upgrade\n";

    # I am forcing this to localhost, as this should only be called during
    # a cpanel rpm install

    my $database  = "information_schema";
    my $mysqlhost = 'localhost';
    my $dbh;

    eval { $dbh = Cpanel::MysqlUtils::Connect::get_dbi_handle( 'database' => $database, 'dbserver' => $mysqlhost, ); };
    if ( $@ || !$dbh ) {
        warn "fix_innodb_tables: Failed to connect to db: $database: $@";
        print "Failed to connect to db: $database: $@";
        return 1;
    }

    #
    #NOTES:
    #
    #http://bugs.mysql.com/bug.php?id=44640
    #http://www.mysqlperformanceblog.com/2010/05/14/mysql_upgrade-and-innodb-tables/
    #

    my $sql     = qq~SELECT table_schema, table_name, engine FROM tables;~;
    my $sth     = $dbh->prepare($sql);
    my $results = $sth->execute();

    if ( $sth->rows ) {
        print "\nChecking " . $sth->rows . " tables.  This may take some time.\n\n";
        while ( my $ref = $sth->fetchrow_hashref ) {
            if ( uc( $ref->{'engine'} ) eq "INNODB" ) {
                my $schema = Cpanel::MysqlUtils::Quote::quote_identifier( $ref->{'table_schema'} );
                my $name   = Cpanel::MysqlUtils::Quote::quote_identifier( $ref->{'table_name'} );

                print qq~Checking $schema.$name~;

                my $sql2    = qq~CHECK TABLE $schema.$name;~;
                my $sth2    = $dbh->prepare($sql2);
                my $results = $sth2->execute();

                if ( $sth2->rows ) {
                    my $array_ref = $sth2->fetchrow_arrayref;

                    if ( $array_ref->[2] eq "error" ) {
                        print "-- Repairing Table\n";

                        my $sql3 = qq~ALTER TABLE $schema.$name ENGINE=INNODB;~;
                        my $sth3 = $dbh->prepare($sql3);
                        $sth3->execute();
                        $sth3->finish();
                    }
                    else {
                        print "-- Table Clean\n";
                    }
                }

                $sth2->finish();
            }
        }
    }

    $sth->finish();

    return 0;
}

1;

__END__

Youez - 2016 - github.com/yon3zu
LinuXploit