mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-08 12:56:48 +00:00
use new get_options
argument parser should be more or less compatible with what we had in 1.X
This commit is contained in:
parent
4a4051d8c5
commit
b2ae28cc4f
34
bin/vzdump
34
bin/vzdump
@ -170,11 +170,6 @@ __PACKAGE__->register_method ({
|
|||||||
code => sub {
|
code => sub {
|
||||||
my ($param) = @_;
|
my ($param) = @_;
|
||||||
|
|
||||||
my $cmdline = 'vzdump';
|
|
||||||
foreach my $p (keys %$param) {
|
|
||||||
$cmdline .= " --$p $param->{$p}";
|
|
||||||
}
|
|
||||||
|
|
||||||
my $rpcenv = PVE::RPCEnvironment::get();
|
my $rpcenv = PVE::RPCEnvironment::get();
|
||||||
|
|
||||||
my $user = $rpcenv->get_user();
|
my $user = $rpcenv->get_user();
|
||||||
@ -193,10 +188,10 @@ __PACKAGE__->register_method ({
|
|||||||
$param->{all} = 1 if defined($param->{exclude});
|
$param->{all} = 1 if defined($param->{exclude});
|
||||||
|
|
||||||
raise_param_exc({ all => "option conflicts with option 'vmid'"})
|
raise_param_exc({ all => "option conflicts with option 'vmid'"})
|
||||||
if $param->{all} && defined($param->{vmid});
|
if $param->{all} && $param->{vmid};
|
||||||
|
|
||||||
raise_param_exc({ vmid => "property is missing"})
|
raise_param_exc({ vmid => "property is missing"})
|
||||||
if !$param->{all} && !defined($param->{vmid});
|
if !$param->{all} && !$param->{vmid};
|
||||||
|
|
||||||
# silent exit if we run on wrong node
|
# silent exit if we run on wrong node
|
||||||
my $nodename = PVE::INotify::nodename();
|
my $nodename = PVE::INotify::nodename();
|
||||||
@ -204,6 +199,13 @@ __PACKAGE__->register_method ({
|
|||||||
|
|
||||||
# convert string lists to arrays
|
# convert string lists to arrays
|
||||||
my @vmids = PVE::Tools::split_list(extract_param($param, 'vmid'));
|
my @vmids = PVE::Tools::split_list(extract_param($param, 'vmid'));
|
||||||
|
|
||||||
|
my $cmdline = 'vzdump';
|
||||||
|
$cmdline .= ' ' . join(' ', @vmids) if scalar(@vmids);
|
||||||
|
foreach my $p (keys %$param) {
|
||||||
|
$cmdline .= " --$p $param->{$p}";
|
||||||
|
}
|
||||||
|
|
||||||
$param->{vmids} = PVE::VZDump::check_vmids(@vmids) if !$param->{all};
|
$param->{vmids} = PVE::VZDump::check_vmids(@vmids) if !$param->{all};
|
||||||
my @exclude = PVE::Tools::split_list(extract_param($param, 'exclude'));
|
my @exclude = PVE::Tools::split_list(extract_param($param, 'exclude'));
|
||||||
$param->{exclude} = PVE::VZDump::check_vmids(@exclude);
|
$param->{exclude} = PVE::VZDump::check_vmids(@exclude);
|
||||||
@ -256,7 +258,7 @@ __PACKAGE__->register_method ({
|
|||||||
return $rpcenv->fork_worker('vzdump', undef, $user, $worker);
|
return $rpcenv->fork_worker('vzdump', undef, $user, $worker);
|
||||||
}});
|
}});
|
||||||
|
|
||||||
my $cmddef = [ __PACKAGE__, 'vzdump', undef, undef,
|
my $cmddef = [ __PACKAGE__, 'vzdump', 'vmid', undef,
|
||||||
sub {
|
sub {
|
||||||
my $upid = shift;
|
my $upid = shift;
|
||||||
my $status = PVE::Tools::upid_read_status($upid);
|
my $status = PVE::Tools::upid_read_status($upid);
|
||||||
@ -369,7 +371,7 @@ vzdump skips the following files wit option --stdexcludes
|
|||||||
|
|
||||||
You can manually specify exclude paths, for example:
|
You can manually specify exclude paths, for example:
|
||||||
|
|
||||||
# vzdump --exclude-path C</tmp/.+> --exclude-path C</var/tmp/.+> 777
|
# vzdump 777 --exclude-path C</tmp/.+> --exclude-path C</var/tmp/.+>
|
||||||
|
|
||||||
(only excludes tmp directories)
|
(only excludes tmp directories)
|
||||||
|
|
||||||
@ -383,23 +385,27 @@ VZDump does not save ACLs.
|
|||||||
|
|
||||||
Simply dump VM 777 - no snapshot, just archive the VM private area and configuration files to the default dump directory (usually /vz/dump/).
|
Simply dump VM 777 - no snapshot, just archive the VM private area and configuration files to the default dump directory (usually /vz/dump/).
|
||||||
|
|
||||||
# vzdump --vmid 777
|
# vzdump 777
|
||||||
|
|
||||||
Use rsync and suspend/resume to create an snapshot (minimal downtime).
|
Use rsync and suspend/resume to create an snapshot (minimal downtime).
|
||||||
|
|
||||||
# vzdump --suspend --vmid 777
|
# vzdump 777 --suspend
|
||||||
|
|
||||||
Backup all VMs and send notification mails to root and admin.
|
Backup all VMs and send notification mails to root and admin.
|
||||||
|
|
||||||
# vzdump --suspend --all --mailto root --mailto admin
|
# vzdump --all --suspend --mailto root --mailto admin
|
||||||
|
|
||||||
Use LVM2 to create snapshots (no downtime).
|
Use LVM2 to create snapshots (no downtime).
|
||||||
|
|
||||||
# vzdump --dumpdir /mnt/backup --snapshot --vmid 777
|
# vzdump 777 --dumpdir /mnt/backup --snapshot
|
||||||
|
|
||||||
|
Backup more than one VM (selectively)
|
||||||
|
|
||||||
|
# vzdump 101 102 103 --mailto root
|
||||||
|
|
||||||
Backup all VMs excluding VM 101 and 102
|
Backup all VMs excluding VM 101 and 102
|
||||||
|
|
||||||
# vzdump --suspend --exclude 101 --exclude 102
|
# vzdump --suspend --exclude 101,102
|
||||||
|
|
||||||
Restore an OpenVZ machine to VM 600
|
Restore an OpenVZ machine to VM 600
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user