From b35b650a6078d645d6f97620f3c79ae941915dd9 Mon Sep 17 00:00:00 2001 From: jeff Date: Mon, 18 Feb 2002 00:13:58 +0000 Subject: [PATCH] trading in tar for rsync for improved vpopmail support --- FS/FS/Conf.pm | 7 +++++++ Makefile | 6 ++++++ bin/svc_acct.export | 39 ++++++++++++++++++++++++--------------- eg/vpopmailrestart | 11 +++++++++++ 4 files changed, 48 insertions(+), 15 deletions(-) create mode 100755 eg/vpopmailrestart diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index d5c00467d..7a4a71966 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -732,6 +732,13 @@ httemplate/docs/config.html }, { + 'key' => 'vpopmailrestart', + 'section' => 'mail', + 'description' => 'If defined, the command which is run on vpopmail machines after files are copied. An example can be found in eg/vpopmailrestart of the source distribution.', + 'type' => 'text', + }, + + { 'key' => 'safe-part_pkg', 'section' => 'UI', 'description' => 'Validates package definition setup and recur expressions against a preset list. Useful for webdemos, annoying to powerusers.', diff --git a/Makefile b/Makefile index 283981a87..34259737b 100644 --- a/Makefile +++ b/Makefile @@ -6,8 +6,14 @@ DATASOURCE = DBI:Pg:host=localhost;dbname=freeside DB_USER = freeside DB_PASSWORD= +<<<<<<< Makefile +#TEMPLATE = asp +#mason's a bit dodgy still +TEMPLATE = mason +======= TEMPLATE = asp #TEMPLATE = mason +>>>>>>> 1.27 ASP_GLOBAL = /usr/local/etc/freeside/asp-global diff --git a/bin/svc_acct.export b/bin/svc_acct.export index cee63bcd5..11178c962 100755 --- a/bin/svc_acct.export +++ b/bin/svc_acct.export @@ -1,6 +1,6 @@ #!/usr/bin/perl -w # -# $Id: svc_acct.export,v 1.32 2002-02-15 20:21:56 jeff Exp $ +# $Id: svc_acct.export,v 1.33 2002-02-18 00:13:57 jeff Exp $ # # Create and export password, radius and vpopmail password files: # passwd, passwd.adjunct, shadow, acp_passwd, acp_userinfo, acp_dialup @@ -22,6 +22,9 @@ use FS::svc_acct; use FS::svc_domain; use FS::svc_forward; +my $ssh='ssh'; +my $rsync='rsync'; + my $user = shift or die &usage; adminsuidsetup $user; @@ -648,26 +651,32 @@ foreach my $icradiusmachine ( @icradiusmachines ) { close WRITER; } -my @args = ("/bin/tar", "c", "--force-local", "-C", "$spooldir", "-f", "$spooldir/vpoptarball", "domains"); +#my @args = ("/bin/tar", "c", "--force-local", "-C", "$spooldir", "-f", "$spooldir/vpoptarball", "domains"); -system {$args[0]} @args; +#system {$args[0]} @args; my($vpopmailmachine); foreach $vpopmailmachine (@vpopmailmachines) { my ($machine, $vpopdir, $vpopuid, $vpopgid) = split (/\s+/, $vpopmailmachine); my $scp = new Net::SCP; - $scp->scp("$spooldir/vpoptarball","root\@$machine:vpoptarball") - or die "scp error: ". $scp->{errstr}; - ssh("root\@$machine", - "( ". - "tar xf vpoptarball; ". - "chown -R $vpopuid:$vpopgid domains; ". - "tar cf vpoptarball domains; ". - "cd $vpopdir; ". - "tar xf ~/vpoptarball; ". - " )" - ) - == 0 or die "ssh error: $!"; +# $scp->scp("$spooldir/vpoptarball","root\@$machine:vpoptarball") +# or die "scp error: ". $scp->{errstr}; +# ssh("root\@$machine", +# "( ". +# "rm -rf domains; ". +# "tar xf vpoptarball; ". +# "chown -R $vpopuid:$vpopgid domains; ". +# "tar cf vpoptarball domains; ". +# "cd $vpopdir; ". +# "tar xf ~/vpoptarball; ". +# " )" +# ) +# == 0 or die "ssh error: $!"; + + chdir $spooldir; + my @args = ("$rsync", "-rlpt", "-e", "$ssh", "domains/", "vpopmail\@$machine:$vpopdir/domains/"); + + system {$args[0]} @args; $scp->scp("$spooldir/assign","root\@$machine:/var/qmail/users/assign") or die "scp error: ". $scp->{errstr}; diff --git a/eg/vpopmailrestart b/eg/vpopmailrestart new file mode 100755 index 000000000..c716e2e2b --- /dev/null +++ b/eg/vpopmailrestart @@ -0,0 +1,11 @@ +#!/bin/sh + +for domain in /home/vpopmail/domains/* +do + /home/vpopmail/bin/vmkpasswd `/bin/basename $domain` +done + +/var/qmail/bin/qmail-newu + +killall -HUP qmail-send + -- 2.11.0