�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �%connect( { 'database' => $meta_path } ); # Get all the backup IDs and their paths my $sth = $dbh->prepare(qq{SELECT backup_id,backup_path FROM backup_paths}); my $results = $sth->execute(); my @backups; while ( my $row = $sth->fetchrow_arrayref() ) { push @backups, { 'id' => $row->[0], 'path' => $row->[1] }; } # type == 0 uncompressed # type == 1 compressed # type == 2 incremental # type == 3 other foreach my $backup (@backups) { # Get basedir with date by stripping /accounts/ $backup->{'path'} =~ s/\/accounts$//; my $ref = Cpanel::Backup::Metadata::load_master_meta( $backup->{'path'} ); if ( defined( $ref->{'backup_type'} ) and $ref->{'backup_type'} eq 'ERROR' ) { # print "Could not load .master.meta from " . $backup->{'path'} . "/accounts/\n"; # This would be a good case for adding a debugging/verbose flag to this script next; } my $backup_type_text = Cpanel::Backup::Metadata::get_backup_type_text( $ref->{'users'}{$user}{'backup_type'} ); my $full_path_to_backup; if ( $ref->{'users'}{$user}{'backup_type'} == 0 ) { $full_path_to_backup = $backup->{'path'} . '/accounts/' . $user . '.tar'; } elsif ( $ref->{'users'}{$user}{'backup_type'} == 1 ) { $full_path_to_backup = $backup->{'path'} . '/accounts/' . $user . '.tar.gz'; } elsif ( $ref->{'users'}{$user}{'backup_type'} == 2 ) { $full_path_to_backup = $backup->{'path'} . '/accounts/' . $user; } else { $full_path_to_backup = ''; } my $resolution_query = <prepare($resolution_query); $sth->execute( $backup->{'id'}, $Cpanel::Backup::Metadata::REMOVE_OPERATION ); while ( my $row = $sth->fetchrow_arrayref() ) { my ( $bu_path, $size, $path, $mtime, $operation, $file_type ) = @{$row}; my $full_path_to_backup_file; if ($regexp) { next if $path !~ m/$regexp/; } if ( $ref->{'users'}{$user}{'backup_type'} == 2 ) { $full_path_to_backup_file = $full_path_to_backup . '/homedir' . $path; } else { $full_path_to_backup_file = $full_path_to_backup; } my $file_type_text = Cpanel::Backup::Metadata::get_file_type_text($file_type); print '"' . gmtime($mtime) . '",' . $size . ',' . $backup_type_text . ',' . '"' . $path . '"' . ',"' . $full_path_to_backup_file . '",' . $file_type_text . "\n"; } } return; } sub script { my (@args) = @_; my $opts = Getopt::Long::GetOptionsFromArray( \@args, 'user=s' => \$user, 'regexp=s' => \$regexp, ) or _invalid_parms(); _help("no user provided") if !$user; generate_output( $user, $regexp ); return 1; } exit( script(@ARGV) ? 0 : 1 ) unless caller();