X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FCron%2Fbackup.pm;h=3c0d63bdd36f82a86101fedd2cbc36d727e9f381;hb=2266fd6cfc6c9a0e88cf62c0567713dc9db26436;hp=204069a1271c75793e2fa8f389fc3b8929ab6470;hpb=9509e5bfb7f9331303153cac24d7bfecbe2ea9f1;p=freeside.git diff --git a/FS/FS/Cron/backup.pm b/FS/FS/Cron/backup.pm index 204069a12..3c0d63bdd 100644 --- a/FS/FS/Cron/backup.pm +++ b/FS/FS/Cron/backup.pm @@ -3,6 +3,7 @@ package FS::Cron::backup; use strict; use vars qw( @ISA @EXPORT_OK ); use Exporter; +use Date::Format; use FS::UID qw(driver_name datasrc); @ISA = qw( Exporter ); @@ -12,12 +13,13 @@ sub backup_scp { my $conf = new FS::Conf; my $dest = $conf->config('dump-scpdest'); if ( $dest ) { + $dest .= time2str('/%Y%m%d%H%M%S',time); datasrc =~ /dbname=([\w\.]+)$/ or die "unparsable datasrc ". datasrc; my $database = $1; eval "use Net::SCP qw(scp);"; die $@ if $@; if ( driver_name eq 'Pg' ) { - system("pg_dump $database >/var/tmp/$database.sql") + system("pg_dump -Fc $database >/var/tmp/$database.Pg") } else { die "database dumps not yet supported for ". driver_name; } @@ -25,18 +27,18 @@ sub backup_scp { eval 'use GnuPG;'; die $@ if $@; my $gpg = new GnuPG; - $gpg->encrypt( plaintext => "/var/tmp/$database.sql", + $gpg->encrypt( plaintext => "/var/tmp/$database.Pg", output => "/var/tmp/$database.gpg", recipient => $conf->config('dump-pgpid'), ); chmod 0600, '/var/tmp/$database.gpg'; - scp("/var/tmp/$database.gpg", $dest); + scp("/var/tmp/$database.gpg", "$dest.gpg"); unlink "/var/tmp/$database.gpg" or die $!; } else { - chmod 0600, '/var/tmp/$database.sql'; - scp("/var/tmp/$database.sql", $dest); + chmod 0600, '/var/tmp/$database.Pg'; + scp("/var/tmp/$database.Pg", "$dest.Pg"); } - unlink "/var/tmp/$database.sql" or die $!; + unlink "/var/tmp/$database.Pg" or die $!; } }