1 package FS::Cron::backup;
4 use vars qw( @ISA @EXPORT_OK );
6 use FS::UID qw(driver_name datasrc);
9 @EXPORT_OK = qw( backup_scp );
12 my $conf = new FS::Conf;
13 my $dest = $conf->config('dump-scpdest');
14 $dest .= time2str('/%Y%m%d%H%M%S',time);
16 datasrc =~ /dbname=([\w\.]+)$/ or die "unparsable datasrc ". datasrc;
18 eval "use Net::SCP qw(scp);";
20 if ( driver_name eq 'Pg' ) {
21 system("pg_dump $database >/var/tmp/$database.sql")
23 die "database dumps not yet supported for ". driver_name;
25 if ( $conf->config('dump-pgpid') ) {
29 $gpg->encrypt( plaintext => "/var/tmp/$database.sql",
30 output => "/var/tmp/$database.gpg",
31 recipient => $conf->config('dump-pgpid'),
33 chmod 0600, '/var/tmp/$database.gpg';
34 scp("/var/tmp/$database.gpg", "$dest.gpg");
35 unlink "/var/tmp/$database.gpg" or die $!;
37 chmod 0600, '/var/tmp/$database.sql';
38 scp("/var/tmp/$database.sql", "$dest.sql");
40 unlink "/var/tmp/$database.sql" or die $!;