backup the schema for tables we don't need the data from. RT#85959
[freeside.git] / FS / FS / Cron / backup.pm
index a192ca9..65d7acb 100644 (file)
@@ -25,7 +25,11 @@ sub backup {
 
   my $ext;
   if ( driver_name eq 'Pg' ) {
-    system("pg_dump -Fc $database >/var/tmp/$database.Pg");
+    system('pg_dump -Fc '. join(' ', map { "--exclude-table-data $_" }
+                                       qw( h_cdr h_queue h_queue_arg sessions )
+                               ).
+                           " $database >/var/tmp/$database.Pg"
+          );
     $ext = 'Pg';
   } elsif ( driver_name eq 'mysql' ) {
     system("mysqldump $database >/var/tmp/$database.sql");
@@ -58,7 +62,9 @@ sub backup {
   if ( $scpdest ) {
     eval "use Net::SCP qw(scp);";
     backup_log_and_die($filename,$@) if $@;
-    scp("/var/tmp/$database.$ext", "$scpdest/$filename.$ext");
+    my $scp = new Net::SCP;
+    $scp->scp("/var/tmp/$database.$ext", "$scpdest/$filename.$ext")
+      or backup_log_and_die($filename, $scp->{errstr});
   }
 
   unlink "/var/tmp/$database.$ext" or backup_log_and_die($filename,$!); #or just warn?