/usr/share/backuppc/bin/BackupPC_archiveStart is in backuppc 3.3.0-1ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | #!/usr/bin/perl
#============================================================= -*-perl-*-
#
# BackupPC_archiveStart: start an archive request from the
# command line.
#
# DESCRIPTION
#
# Usage: BackupPC_archiveStart archiveHost userName hosts...
#
# Initiates an archive request on archive host archiveHost
# for the listed hosts. The latest backup for each host is
# archived. The userName is name of the requesting user,
# which appears in the log files.
#
# AUTHOR
# Craig Barratt <cbarratt@users.sourceforge.net>
#
# COPYRIGHT
# Copyright (C) 2007-2013 Craig Barratt
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#========================================================================
#
# Version 3.3.0, released 14 Apr 2013.
#
# See http://backuppc.sourceforge.net.
#
#========================================================================
use strict;
no utf8;
use lib "/usr/share/backuppc/lib";
use Getopt::Std;
use BackupPC::Lib;
die("BackupPC::Lib->new failed\n") if ( !(my $bpc = BackupPC::Lib->new) );
my %opts;
# no options currently
if ( !getopts("", \%opts) || @ARGV < 3 ) {
print STDERR <<EOF;
usage: $0 archiveHost userName hosts...
EOF
exit(1);
}
my $Hosts = $bpc->HostInfoRead();
my $ArchiveHost = $ARGV[0];
my $UserName = $ARGV[1];
my $TopDir = $bpc->{Conf}{TopDir};
if ( !defined($Hosts->{$ArchiveHost}) ) {
print(STDERR "$0: archive host $ArchiveHost doesn't exist... quitting\n");
exit(1);
}
$bpc->ConfigRead($ArchiveHost);
my(@HostList, @BackupList);
for ( my $i = 2 ; $i < @ARGV ; $i++ ) {
my $host = $ARGV[$i];
if ( !defined($Hosts->{$host}) ) {
print(STDERR "$0: host $host doesn't exist... quitting\n");
exit(1);
}
my @backups = $bpc->BackupInfoRead($host);
if ( !@backups ) {
print(STDERR "$0: host $host doesn't have any backups... quitting\n");
exit(1);
}
push(@HostList, $host);
push(@BackupList, $backups[$#backups]{num});
}
my $ReqFileName;
for ( my $i = 0 ; ; $i++ ) {
$ReqFileName="archiveReq.$$.$i";
last if ( !-f "$TopDir/pc/$ArchiveHost/$ReqFileName" );
}
my %ArchiveReq = (
archiveloc => $bpc->{Conf}{ArchiveDest},
archtype => 0,
compression => $bpc->{Conf}{ArchiveComp} eq 'none' ? $bpc->{Conf}{CatPath}
: ($bpc->{Conf}{ArchiveComp} eq 'gzip'
? $bpc->{Conf}{GzipPath} : $bpc->{Conf}{Bzip2Path}),
compext => $bpc->{Conf}{ArchiveComp} eq 'none' ? ''
: ($bpc->{Conf}{ArchiveComp} eq 'gzip' ? '.gz' : '.bz2'),
parfile => $bpc->{Conf}{ArchivePar},
splitsize => '0000000',
host => $ArchiveHost,
HostList => \@HostList,
BackupList => \@BackupList,
user => $UserName,
reqTime => time,
);
my $archive = Data::Dumper->new([\%ArchiveReq], [qw(*ArchiveReq)]);
$archive->Indent(1);
if ( !open(REQ, ">", "$TopDir/pc/$ArchiveHost/$ReqFileName") ) {
print(STDERR "$0: can't open/write request file $TopDir/pc/$ArchiveHost/$ReqFileName... quitting\n");
exit(1);
}
binmode(REQ);
print REQ $archive->Dump;
close(REQ);
$bpc->ServerConnect($bpc->{Conf}{ServerHost}, $bpc->{Conf}{ServerPort});
my $reply = $bpc->ServerMesg("archive $UserName $ArchiveHost $ReqFileName");
$bpc->ServerDisconnect();
print("Sent archive request, reply: $reply\n");
exit(0);
|