#!/usr/bin/perl 
use Proxmox::PFilter;
,=7-E('-T<FEC=#L*
2=7-E($=E=&]P=#HZ3&]N9SL*
1=7-E(%-Y<SHZ4WES;&]G.PH`
5=7-E(%!R;WAM;W@Z.D-O;F9I9SL*
;=7-E(%!R;WAM;W@Z.D-O;F9I9U-E<G9E<CL*
7=7-E(%!R;WAM;W@Z.E)3=&]R86=E.PH`
!"@``
L;W!E;FQO9R`H)W!R;WAB86-K=7`G+"`G8V]N<RQP:60G+"`G;6%I;"<I.PH`
!"@``
F;7D@)&-O;6UL:6YE(#T@:F]I;B`H)R`G+"`D,"P@0$%21U8I.PH`
!"@``
G<WES;&]G("@G:6YF;R<L(")S=&%R='5P.B`D8V]M;6QI;F4B*3L*
!"@``
,<W5B('5S86=E('L*
M("`@('!R:6YT(%-41$524B`B=7-A9V4Z("0P(%LM+7-T871I<W1I8UT@9FEL
.96YA;64N=&=Z7&XB.PH`
M("`@('!R:6YT(%-41$524B`B("`@("`@("0P("TM;F5T=V]R:R!;+2US=&%T
+:7-T:6-=7&XB.PH`
M("`@('!R:6YT(%-41$524B`B("`@("`@("0P("TM<F5S=&]R92!;+2UN971W
M;W)K72!;+2UD871A8F%S92`M+7-T871I<W1I8R`M+6-O;F9I9UT@9FEL96YA
+;64N=&=Z7&XB.PH`
M("`@('!R:6YT(%-41$524B`B("`@("`@("0P("TM;&ES="!;+2UN971W;W)K
&75QN(CL*
!"@``
J("`@('-Y<VQO9R`H)V5R<B<L(")%4E)/4CH@=7-A9V4@97)R;W(B*3L*
!"@``
/("`@(&5X:70@*"TQ*3L*
"?0H`
!"@``
1;7D@)&]P=%]R97-T;W)E.PH`
2;7D@)&]P=%]D871A8F%S93L*
0;7D@)&]P=%]C;VYF:6<["@``
3;7D@)&]P=%]S=&%T:7-T:6,["@``
1;7D@)&]P=%]N971W;W)K.PH`
.;7D@)&]P=%]L:7-T.PH`
!"@``
M;7D@)'-Y<W1E;5]C9F<@/2!0<F]X;6]X.CI#;VYF:6<Z.E-Y<W1E;2T^;F5W
%("@I.PH`
!"@``
.;7D@)&9I;&5N86UE.PH`
M:68@*"%'971/<'1I;VYS("@G<F5S=&]R92<@/3X@7"1O<'1?<F5S=&]R92P*
A"0D@)V1A=&%B87-E)R`]/B!<)&]P=%]D871A8F%S92P*
C"0D@)W-T871I<W1I8R<@/3X@7"1O<'1?<W1A=&ES=&EC+`H`
?"0D@)VYE='=O<FLG(#T^(%PD;W!T7VYE='=O<FLL"@``
9"0D@)VQI<W0G(#T^(%PD;W!T7VQI<W0L"@``
@"0D@)V-O;F9I9R<@/3X@7"1O<'1?8V]N9FEG*2D@>PH`
.("`@('5S86=E("@I.PH`
"?0H`
!"@``
M;7D@*"1S96,L)&UI;BPD:&]U<BPD;61A>2PD;6]N+"1Y96%R+"1W9&%Y+"1Y
@9&%Y+"1I<V1S="D@/2!L;V-A;'1I;64@*'1I;64I.PH`
M;7D@)&)K9FEL96YA;64@/2!S<')I;G1F("@B<')O>&UO>"UB86-K=7!?)3`T
M9%\E,#)D7R4P,F0N=&=Z(BP@)'EE87(@*R`Q.3`P+"`D;6]N("L@,2P@)&UD
%87DI.PH`
M;7D@)&)K=&UP9FEL96YA;64@/2`B+W9A<B]T;7`O)&)K9FEL96YA;64N)"0N
&=&UP(CL*
7=6YL:6YK("1B:W1M<&9I;&5N86UE.PH`
!"@``
1:68@*"1O<'1?;&ES="D@>PH`
M("`@('5S86=E("@I(&EF("@D;W!T7W)E<W1O<F4@?'P@)&]P=%]D871A8F%S
M92!\?"`D;W!T7W-T871I<W1I8R!\?"`D;W!T7V-O;F9I9R!\?"`D(T%21U8@
'/CT@,"D["@``
9?2!E;'-I9B`H)&]P=%]R97-T;W)E*2!["@``
I("`@('5S86=E(&EF("@D;W!T7VQI<W0@?'P@)"-!4D=6("$](#`I.PH`
)?2!E;'-E('L*
M("`@('5S86=E(&EF("@D;W!T7VQI<W0@?'P@)&]P=%]D871A8F%S92!\?"`D
;;W!T7V-O;F9I9R!\?"`D(T%21U8@/B`P*3L*
!"@``
8("`@(&EF("@D;W!T7VYE='=O<FLI('L*
:"75S86=E("@I(&EF("0C05)'5B`^/2`P.PH`
<"21!4D=66S!=(#T@)&)K=&UP9FEL96YA;64["@``
&("`@('T*
"?0H`
!"@``
.;7D@)&UO9&4@/2`P.PH`
!"@``
;)&UO9&4@?#T@,2!I9B`D;W!T7V-O;F9I9SL*
=)&UO9&4@?#T@,B!I9B`D;W!T7V1A=&%B87-E.PH`
>)&UO9&4@?#T@-B!I9B`D;W!T7W-T871I<W1I8SL*
!"@``
);7D@)&US9SL*
!"@``
'979A;"!["@``
1("`@(&UY("1S=&]R86=E.PH`
!"@``
9("`@(&EF("@D;W!T7VYE='=O<FLI('L)"@``
M"21S=&]R86=E(#T@4')O>&UO>#HZ4E-T;W)A9V4M/FYE=U]F<F]M7V-O;F9I
19R`H)'-Y<W1E;5]C9F<I.PH`
-("`@('T@96QS92!["@``
M"21S=&]R86=E(#T@4')O>&UO>#HZ4E-T;W)A9V4M/FYE=R`H='EP92`]/B`G
69FEL92<L("!P871H(#T^("<N)RD["@``
&("`@('T*
!"@``
M("`@(&1I92`B=6YA8FQE('1O(&=E="!S=&]R86=E(')E9F5R96YC92`H=')Y
>('=I=&AO=70@+6XI7&XB(&EF("$D<W1O<F%G93L*
!"@``
5("`@(&EF("@D;W!T7VQI<W0I('L*
!"@``
F"6UY("1R97,@/2`D<W1O<F%G92T^;&ES=%]B:V9I;&5S("@I.PH`
!"@``
<"6UY("1U<FD@/2`D<W1O<F%G92T^=7)I*"D["@``
!"@``
E"7!R:6YT(")3=&]R86=E(&9I;&4@;&ES=#H@)'5R:2]<;B(["@``
9"69O<F5A8V@@;7D@)&$@*$`D<F5S*2!["@``
9"2`@("!P<FEN="`B7'1`)&%;,%U<;B(["@``
#"7T*
!"@``
5"21S=&]R86=E+3YC;&]S92`H*3L*
!"@``
=("`@('T@96QS:68@*"1O<'1?<F5S=&]R92D@>PH`
5"6EF("@D;W!T7VYE='=O<FLI('L*
A"2`@("!M>2`D=7)I(#T@)'-T;W)A9V4M/G5R:2`H*3L*
M"2`@("`D;7-G(#T@(D1O=VYL;V%D:6YG(&9I;&4@)'5R:2\D05)'5ELP72!T
3;R`D8FMT;7!F:6QE;F%M92(["@``
5"2`@("!P<FEN="`B)&US9UQN(CL*
<"2`@("!S>7-L;V<@*"=I;F9O)RP@)&US9RD["@``
!"@``
,"2`@("!E=F%L('L*
M"0DD<W1O<F%G92T^;&]A9"`H)$%21U9;,%TL("1B:W1M<&9I;&5N86UE*3L*
("2`@("!].PH`
3"2`@("!M>2`D97)R(#T@)$`["@``
!"@``
1"2`@("!I9B`H)&5R<BD@>PH`
9"0EU;FQI;FL@)&)K=&UP9FEL96YA;64["@``
,"0ED:64@)&5R<CL*
'"2`@("!]"@``
!"@``
M"2`@("`D;7-G(#T@(E-T87)T:6YG(%!R;WAM;W@@<F5S=&]R92`H)&)K=&UP
,9FEL96YA;64I(CL*
5"2`@("!P<FEN="`B)&US9UQN(CL*
<"2`@("!S>7-L;V<@*"=I;F9O)RP@)&US9RD["@``
!"@``
,"2`@("!E=F%L('L*
M"0E0<F]X;6]X.CI#;VYF:6=397)V97(M/G!R;WAM;WA?<F5S=&]R92`H)&)K
5=&UP9FEL96YA;64L("1M;V1E*3L*
*"2`@("`@('T["@``
!"@``
0"2`@("`D97)R(#T@)$`["@``
!"@``
1"2`@("!I9B`H)&5R<BD@>PH`
9"0EU;FQI;FL@)&)K=&UP9FEL96YA;64["@``
,"0ED:64@)&5R<CL*
'"2`@("!]"@``
!"@``
*"7T@96QS92!["@``
M"2`@("`D;7-G(#T@(E-T87)T:6YG(%!R;WAM;W@@<F5S=&]R92`H)$%21U9;
&,%TI(CL*
5"2`@("!P<FEN="`B)&US9UQN(CL*
<"2`@("!S>7-L;V<@*"=I;F9O)RP@)&US9RD["@``
!"@``
M"2`@("!0<F]X;6]X.CI#;VYF:6=397)V97(M/G!R;WAM;WA?<F5S=&]R92`H
2)$%21U9;,%TL("1M;V1E*3L*
#"7T*
!"@``
-("`@('T@96QS92!["@``
M"21M<V<@/2`B4W1A<G1I;F<@4')O>&UO>"!B86-K=7`@*"1!4D=66S!=*2([
!"@``
1"7!R:6YT("(D;7-G7&XB.PH`
8"7-Y<VQO9R`H)VEN9F\G+"`D;7-G*3L*
!"@``
("65V86P@>PH`
M"2`@("!0<F]X;6]X.CI#;VYF:6=397)V97(M/G!R;WAM;WA?8F%C:W5P("@D
:05)'5ELP72P@)&]P=%]S=&%T:7-T:6,I.PH`
="2`@("!M>2`D<VEZ92`]("US("1!4D=66S!=.PH`
F"2`@("`D;7-G(#T@(D)A8VMU<"!/2SH@)'-I>F4@8GET97,B.PH`
5"2`@("!P<FEN="`B)&US9UQN(CL*
<"2`@("!S>7-L;V<@*"=I;F9O)RP@)&US9RD["@``
$"7T["@``
/"6UY("1E<G(@/2`D0#L*
!"@``
5"6EF("@D;W!T7VYE='=O<FLI('L*
!"@``
A"2`@("!M>2`D=7)I(#T@)'-T;W)A9V4M/G5R:2`H*3L*
2"2`@("!I9B`H(21E<G(I('L*
M"0DD;7-G(#T@(E5P;&]A9&EN9R!B86-K=7`@=&\@)R1U<FDO)&)K9FEL96YA
&;64G(CL*
2"0EP<FEN="`B)&US9UQN(CL*
9"0ES>7-L;V<@*"=I;F9O)RP@)&US9RD["@``
!"@``
)"0EE=F%L('L*
#"0D*
M"0D@("`@)'-T;W)A9V4M/G-A=F4@*"1!4D=66S!=+"`D8FMF:6QE;F%M92D[
!"@``
!"@``
M"0D@("`@;7D@)&1A>7,@/2`D<WES=&5M7V-F9RT^9V5T("@G8F%C:W5P)RP@
2)W!U<F=E86=E)RD@?'P@,#L*
'"0D@("`@"@``
M"0D@("`@)&US9R`](")0=7)G:6YG(&9I;&5S(&]L9&5R('1H86X@)&1A>7,@
'9&%Y<R(["@``
6"0D@("`@<')I;G0@(B1M<V=<;B(["@``
="0D@("`@<WES;&]G("@G:6YF;R<L("1M<V<I.PH`
!"@``
E"0D@("`@)'-T;W)A9V4M/G!U<F=E7V9I;&5S("@D9&%Y<RD["@``
!"@``
:"0D@("`@)'-T;W)A9V4M/F-L;W-E("@I.PH`
#"0D*
%"0E].PH`
!"@``
-"0DD97)R(#T@)$`["@``
'"2`@("!]"@``
!"@``
6"2`@("!U;FQI;FL@)$%21U9;,%T["@``
#"7T*
!"@``
3"61I92`D97)R(&EF("1E<G(["@``
&("`@('T*
#?3L*
!"@``
.;7D@)&5R<B`]("1`.PH`
!"@``
,:68@*"1E<G(I('L*
:("`@('-Y<VQO9R`H)V5R<B<L("1E<G(I.PH`
/("`@(&1I92`D97)R.R`*
)?2!E;'-E('L*
=("`@('-Y<VQO9R`H)VEN9F\G+"`G9&]N92<I.PH`
"?0H`
!"@``
(97AI="`P.PH`
!"@``
__END__

=head1 NAME
                                          
proxbackup - proxmox backup and restore utility

=head1 SYNOPSIS

proxbackup [--statistic] filename.tgz

proxbackup --network [--statistic]

proxbackup --restore [--network] [--database --statistic --config] filename.tgz

proxbackup --list [--network]

=head1 DESCRIPTION

Please use proxbackup to backup or restore the proxmox configuration. The configuration
consists of 3 sections:

=over *

=item System Configuration

Include IP Address, DNS setting, ...

=item Rule Database

Mail filter rule database

=item Statistic Database

Includes several statistic databases.

=back

By default proxbackup does not backup/restore the statistic databases, please use -s to include them. 

proxbackup can upload/download backups using the remote storage configured for scheduled backups (option --network).

=head1 Possible restore modes

=over *

=item -c     Restore system configuration

=item -d     Restore rule database (without statistics)

=item -s     Restore rule database and statistics

=item -c -d  Restore system configuration and rule database (default)

=item -c -s  Restore system configuration, rule database and statistics

=back

=head1 OPTIONS

=over 0

=item --l

=item --list 

    List all stored backups (files named proxmox-backup_{DATE}.tgz)

=item --n

=item --network 

    use network storage (scheduled backup)

=item --r

=item --restore 

    Restore mode.

=item -c

=item --config

    Restore system configuration

=item -d

=item --database

    Restore rule database

=item -s

=item --statistic

    Include statistic databases in backup/restore

=back

Please reboot after restoring system configuration (IP, DNS, ...).

=head1 EXAMPLES

=over 0

=item proxbackup backup.tgz

Creates a normal backup not including statistic tables.

=item proxbackup -s full-backup.tgz

Creates a full backup including statistic tables.

=item proxbackup -s -n

Creates a full backup including statistic tables, uploade resulting file to network storage.

=item proxbackup -l -n

List all backup files found on to network storage.

=item proxbackup -r full-backup.tgz

Restores the rule database and system configuartion.

=item proxbackup -r -c -s full-backup.tgz

Restores a full backup including statistic tables (may take several minutes)

=item proxbackup -r -c backup.tgz

Restores system configuration only.

=item proxbackup -r -d backup.tgz

Restores rule databse only.

=item proxbackup -r -s full-backup.tgz

Restore database (rule database and statistic databases).


=back
