summaryrefslogtreecommitdiff
path: root/bin/bind.export
diff options
context:
space:
mode:
authorivan <ivan>2002-05-22 18:44:01 +0000
committerivan <ivan>2002-05-22 18:44:01 +0000
commit23186f0338ec248d930c85db08cc997bca42525b (patch)
tree0f913dcdf0b10d662baf90947d44cd4ac43584c2 /bin/bind.export
parenta55f1c9e63b5428c55aa75d55ab4a280889be288 (diff)
bind export, editing zones, deleting unaudited domains, mmm
Diffstat (limited to 'bin/bind.export')
-rwxr-xr-xbin/bind.export38
1 files changed, 36 insertions, 2 deletions
diff --git a/bin/bind.export b/bin/bind.export
index 8d6f4e3..d49b3cf 100755
--- a/bin/bind.export
+++ b/bin/bind.export
@@ -2,6 +2,8 @@
use strict;
use File::Path;
+use File::Rsync;
+use Net::SSH qw(ssh);
use FS::UID qw(adminsuidsetup datasrc);
use FS::Record qw(qsearch qsearchs);
use FS::part_export;
@@ -18,9 +20,15 @@ mkdir $spooldir unless -d $spooldir;
my @exports = qsearch('part_export', { 'exporttype' => 'bind' } );
my @sexports = qsearch('part_export', { 'exporttype' => 'bind_slave' } );
+my $rsync = File::Rsync->new({
+ rsh => 'ssh',
+# dry_run => 1,
+});
+
foreach my $export ( @exports ) {
- my $prefix = "$spooldir/". $export->machine;
+ my $machine = $export->machine;
+ my $prefix = "$spooldir/$machine";
#prevent old domain files from piling up
#rmtree "$prefix" or die "can't rmtree $prefix.db: $!";
@@ -96,12 +104,30 @@ END
}
+ $rsync->exec( {
+ src => "$prefix/",
+ recursive => 1,
+ dest => "root\@$machine:$zonepath/",
+ exclude => [qw( *.import named.conf.HEADER named.conf )],
+ } ) or die "rsync to $machine failed: ". join(" / ", $rsync->err);
+ # warn $rsync->out;
+
+ $rsync->exec( {
+ src => "$prefix/named.conf",
+ dest => "root\@$machine:". $export->option('named_conf'),
+ } ) or die "rsync to $machine failed: ". join(" / ", $rsync->err);
+# warn $rsync->out;
+
+ ssh("root\@$machine", 'ndc reload');
+
}
+
close NAMED_CONF;
foreach my $sexport ( @sexports ) { #false laziness with above
- my $prefix = "$spooldir/". $sexport->machine;
+ my $machine = $sexport->machine;
+ my $prefix = "$spooldir/$machine";
#prevent old domain files from piling up
#rmtree "$prefix" or die "can't rmtree $prefix.db: $!";
@@ -137,6 +163,14 @@ END
}
+ $rsync->exec( {
+ src => "$prefix/named.conf",
+ dest => "root\@$machine:". $sexport->option('named_conf'),
+ } ) or die "rsync to $machine failed: ". join(" / ", $rsync->err);
+# warn $rsync->out;
+
+ ssh("root\@$machine", 'ndc reload');
+
}
close NAMED_CONF;