1 |
#!/usr/bin/perl -w |
2 |
|
3 |
use strict; |
4 |
use Shell qw/rm vzlist/; |
5 |
|
6 |
my $vz = '/vz'; |
7 |
my $conf = '/etc/vz/conf'; |
8 |
|
9 |
my $VEID = shift @ARGV; |
10 |
|
11 |
sub vzlist_config { |
12 |
my @c; |
13 |
open( my $cfgs, 'find /etc/vz/conf -maxdepth 1 -name "*.conf" |' ) || die "can't run find: $!"; |
14 |
while(<$cfgs>) { |
15 |
chomp; |
16 |
if ( m#^.+/(\d+)\.conf$# ) { |
17 |
if ( -d "$vz/private/$1" ) { |
18 |
push @c, $1; |
19 |
} else { |
20 |
warn "WARNING: have config for $1 but no private directory\n"; |
21 |
} |
22 |
} else { |
23 |
warn "SKIPPED: $_\n"; |
24 |
} |
25 |
} |
26 |
return @c; |
27 |
} |
28 |
|
29 |
die "Usage: $0 VEID\n\n", join("\n",vzlist_config()),"\n" unless $VEID; |
30 |
|
31 |
my $c = "$conf/$VEID.conf"; |
32 |
if ( -e $c ) { |
33 |
unlink $c || die "can't remove $c: $!"; |
34 |
} else { |
35 |
warn "WARNING: configuration file $c doesn't exist\n"; |
36 |
} |
37 |
|
38 |
foreach my $p ( qw/root private/ ) { |
39 |
my $c = "$vz/$p/$VEID"; |
40 |
if ( -e $c ) { |
41 |
rm('-Rf', $c); |
42 |
die "can't remove $c: $!" if -e $c; |
43 |
} else { |
44 |
warn "WARNING: directory $c doesn't exist\n"; |
45 |
} |
46 |
} |
47 |
|
48 |
print "OK: $VEID removed\n"; |