File: //proc/self/root/scripts/dump_databases_and_users
#!/bin/sh
eval 'if [ -x /usr/local/cpanel/3rdparty/bin/perl ]; then exec /usr/local/cpanel/3rdparty/bin/perl -x -- $0 ${1+"$@"}; else exec /usr/bin/perl -x $0 ${1+"$@"}; fi;'
if 0;
#!/usr/bin/perl
# cpanel - scripts/dump_databases_and_users Copyright(c) 2014 cPanel, Inc.
# All Rights Reserved.
# copyright@cpanel.net http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited
use strict;
BEGIN {
unshift @INC, '/usr/local/cpanel';
}
our $VERSION = '1.2';
#
# No USE statements so this runs on other platforms
# We must require everything in AFTER the version line
#
if ( @ARGV && grep( m/version/, @ARGV ) ) {
print "dump_databases_and_users VERSION $VERSION\n";
exit(0);
}
require Cpanel::Config::Users;
require Cpanel::DB::Map;
require Cpanel::JSON;
my @cpusers = Cpanel::Config::Users::getcpusers();
my $master_map = {};
foreach my $cpuser ( Cpanel::Config::Users::getcpusers() ) {
my $dbmap = eval { Cpanel::DB::Map->new( { 'cpuser' => $cpuser } ) };
if ($dbmap) {
my @pgusers = grep( !m/^cpses_/, keys %{ $dbmap->{'stash'}{'PGSQL'}{'dbusers'} } );
my @myusers = grep( !m/^cpses_/, keys %{ $dbmap->{'stash'}{'MYSQL'}{'dbusers'} } );
my @pgdbs = keys %{ $dbmap->{'stash'}{'PGSQL'}{'dbs'} };
my @mydbs = keys %{ $dbmap->{'stash'}{'MYSQL'}{'dbs'} };
@{ $master_map->{'dbs'}{'PGSQL'} }{@pgdbs} = ( ( { 'owner' => $cpuser } ) x scalar @pgdbs );
@{ $master_map->{'dbs'}{'MYSQL'} }{@mydbs} = ( ( { 'owner' => $cpuser } ) x scalar @mydbs );
@{ $master_map->{'users'}{'PGSQL'} }{@pgusers} = ( ( { 'owner' => $cpuser } ) x scalar @pgusers );
@{ $master_map->{'users'}{'MYSQL'} }{@myusers} = ( ( { 'owner' => $cpuser } ) x scalar @myusers );
}
}
delete $master_map->{'users'}{'PGSQL'}{''};
delete $master_map->{'users'}{'MYSQL'}{''};
delete $master_map->{'dbs'}{'PGSQL'}{''};
delete $master_map->{'dbs'}{'MYSQL'}{''};
print Cpanel::JSON::Dump($master_map);