#!/usr/bin/perl use warnings; use strict; use Simba::CA; use autodie; my $basedir = $ARGV[0]; usage() unless $basedir; my $ca = Simba::CA->new({ dbi_file => $ENV{SIMBA_DB_CONN} || "$ENV{HOME}/.dbi/simba", log_fh => \*STDERR, }); my $dbh = $ca->{dbh}; my $sessions = $dbh->selectcol_arrayref("select id from sessions order by id"); for my $session_id (@$sessions) { next if (-f "$basedir/$session_id.tsv" || -f "$basedir/$session_id.tsv.gz"); $ca->log(3, "exporting session $session_id"); my $sth = $dbh->prepare( qq{select sessions.id as "sessions.id", start_date, end_date, prefix, instances.id as "instances.id", file_id, date, online, versions2.id as "versions2.id", file_type, file_size, file_mtime, file_owner, file_group, file_acl, file_unix_bits, file_rdev, checksum, file_linktarget, files.id as "files.id", path, filesets.id as "filesets.id", host, dir, options, pid from sessions, instances, versions2, files, filesets where sessions.id=$session_id and sessions.id=instances.session and instances.version=versions2.id and instances.file=files.id and files.fileset=filesets.id }); $sth->execute; open my $fh, '>', "$basedir/$session_id.tsv"; print $fh join("\t", @{$sth->{NAME}}), "\n"; while (my $r = $sth->fetchrow_arrayref) { no warnings 'uninitialized'; print $fh join("\t", @$r), "\n"; } close($fh); } sub usage { print STDERR "Usage: $0 basedir\n"; exit(1); }