/[BackupPC]/trunk/bin/BackupPC_updatedb
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/bin/BackupPC_updatedb

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 52 by dpavlin, Sat Aug 20 16:45:02 2005 UTC revision 65 by dpavlin, Sun Aug 21 23:25:47 2005 UTC
# Line 95  if ($opt{c}) { Line 95  if ($opt{c}) {
95                          num     INTEGER         NOT NULL,                          num     INTEGER         NOT NULL,
96                          date    integer         NOT NULL,                          date    integer         NOT NULL,
97                          type    CHAR(4)         not null,                          type    CHAR(4)         not null,
98                          PRIMARY KEY(hostID, num)                          shareID integer         not null references shares(id),
99                            PRIMARY KEY(hostID, num, shareID)
100                  );                              );            
101          });          });
102    
103          do_index('backups_hostid,num_unique');          #do_index('backups_hostid,num_unique');
104    
105          $dbh->do(qq{          $dbh->do(qq{
106                  create table dvds (                  create table dvds (
# Line 117  if ($opt{c}) { Line 118  if ($opt{c}) {
118                          backupNum  INTEGER      NOT NULL,                          backupNum  INTEGER      NOT NULL,
119                          name       VARCHAR(255) NOT NULL,                          name       VARCHAR(255) NOT NULL,
120                          path       VARCHAR(255) NOT NULL,                          path       VARCHAR(255) NOT NULL,
                         fullpath   VARCHAR(255) NOT NULL,  
121                          date       integer      NOT NULL,                          date       integer      NOT NULL,
122                          type       INTEGER      NOT NULL,                          type       INTEGER      NOT NULL,
123                          size       INTEGER      NOT NULL,                          size       INTEGER      NOT NULL,
# Line 181  $sth->{hosts_by_name} = $dbh->prepare(qq Line 181  $sth->{hosts_by_name} = $dbh->prepare(qq
181  SELECT ID FROM hosts WHERE name=?  SELECT ID FROM hosts WHERE name=?
182  });  });
183    
184  $sth->{backups_broj} = $dbh->prepare(qq{  $sth->{backups_count} = $dbh->prepare(qq{
185  SELECT COUNT(*)  SELECT COUNT(*)
186  FROM backups  FROM backups
187  WHERE hostID=? AND num=?  WHERE hostID=? AND num=? AND shareid=?
188  });  });
189    
190  $sth->{insert_backups} = $dbh->prepare(qq{  $sth->{insert_backups} = $dbh->prepare(qq{
191  INSERT INTO backups (hostID, num, date, type)  INSERT INTO backups (hostID, num, date, type, shareid)
192  VALUES (?,?,?,?)  VALUES (?,?,?,?,?)
193  });  });
194    
195  $sth->{insert_files} = $dbh->prepare(qq{  $sth->{insert_files} = $dbh->prepare(qq{
196  INSERT INTO files  INSERT INTO files
197          (shareID, backupNum, name, path, fullpath, date, type, size)          (shareID, backupNum, name, path, date, type, size)
198          VALUES (?,?,?,?,?,?,?,?)          VALUES (?,?,?,?,?,?,?)
199  });  });
200    
201  sub fmt_time {  sub fmt_time {
# Line 241  foreach my $host_key (keys %{$hosts}) { Line 241  foreach my $host_key (keys %{$hosts}) {
241                  print $hosts->{$host_key}->{'host'},                  print $hosts->{$host_key}->{'host'},
242                          "\t#$backupNum\t", $backup->{type} || '?', " ",                          "\t#$backupNum\t", $backup->{type} || '?', " ",
243                          $backup->{nFilesNew} || '?', "/", $backup->{nFiles} || '?',                          $backup->{nFilesNew} || '?', "/", $backup->{nFiles} || '?',
244                          " files\n";                          " files (date: ",
245                            strftime($t_fmt,localtime($backup->{startTime})),
246                  $sth->{backups_broj}->execute($hostID, $backupNum);                          " dur: ",
247                  my ($broj) = $sth->{backups_broj}->fetchrow_array();                          fmt_time($backup->{endTime} - $backup->{startTime}),
248                  next if ($broj > 0);                          ")\n";
   
                 $sth->{insert_backups}->execute(  
                         $hostID,  
                         $backupNum,  
                         $backup->{'endTime'},  
                         $backup->{'type'}  
                 );  
                 $dbh->commit();  
249    
250                  my $files = BackupPC::View->new($bpc, $hostname, \@backups, 1);                  my $files = BackupPC::View->new($bpc, $hostname, \@backups, 1);
251                  foreach my $share ($files->shareList($backupNum)) {                  foreach my $share ($files->shareList($backupNum)) {
252    
253                          my $t = time();                          my $t = time();
254    
                         print strftime($t_fmt,localtime())," ", $share;  
255                          $shareID = getShareID($share, $hostID, $hostname);                          $shareID = getShareID($share, $hostID, $hostname);
256                                    
257                            $sth->{backups_count}->execute($hostID, $backupNum, $shareID);
258                            my ($count) = $sth->{backups_count}->fetchrow_array();
259                            # skip if allready in database!
260                            next if ($count > 0);
261    
262                            # dump some log
263                            print strftime($t_fmt,localtime())," ", $share;
264    
265                          my ($f, $nf, $d, $nd) = recurseDir($bpc, $hostname, $files, $backupNum, $share, "", $shareID);                          my ($f, $nf, $d, $nd) = recurseDir($bpc, $hostname, $files, $backupNum, $share, "", $shareID);
266    
267                            $sth->{insert_backups}->execute(
268                                    $hostID,
269                                    $backupNum,
270                                    $backup->{'endTime'},
271                                    $backup->{'type'},
272                                    $shareID
273                            );
274    
275                            print " commit";
276                            $dbh->commit();
277    
278                          my $dur = (time() - $t) || 1;                          my $dur = (time() - $t) || 1;
279                          printf(" %d/%d files %d/%d dirs [%.2f/s dur: %s]\n",                          printf(" %d/%d files %d/%d dirs [%.2f/s dur: %s]\n",
280                                  $nf, $f, $nd, $d,                                  $nf, $f, $nd, $d,
281                                  ( ($f+$d) / $dur ),                                  ( ($f+$d) / $dur ),
282                                  fmt_time($dur)                                  fmt_time($dur)
283                          );                          );
                         $dbh->commit();  
284                  }                  }
285    
286          }          }
# Line 364  sub recurseDir($$$$$$$$) { Line 374  sub recurseDir($$$$$$$$) {
374                                  $backupNum,                                  $backupNum,
375                                  $path_key,                                  $path_key,
376                                  $filesInBackup->{$path_key}->{'relPath'},                                  $filesInBackup->{$path_key}->{'relPath'},
                                 $filesInBackup->{$path_key}->{'fullPath'},  
         #                       $filesInBackup->{$path_key}->{'sharePathM'},  
377                                  $filesInBackup->{$path_key}->{'mtime'},                                  $filesInBackup->{$path_key}->{'mtime'},
378                                  $filesInBackup->{$path_key}->{'type'},                                  $filesInBackup->{$path_key}->{'type'},
379                                  $filesInBackup->{$path_key}->{'size'}                                  $filesInBackup->{$path_key}->{'size'}

Legend:
Removed from v.52  
changed lines
  Added in v.65

  ViewVC Help
Powered by ViewVC 1.1.26