You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
757 B
Perl
32 lines
757 B
Perl
#!/usr/bin/perl
|
|
|
|
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
|
|
localtime(time);
|
|
$year = 1900 + $year;
|
|
my $snapdir = sprintf "snap-%04d%02d%02d-%02d:%02d:%02d",
|
|
$year, $month, $mday, $hour, $min, $sec;
|
|
mkdir $snapdir, 0744 or die "$snapdir: $!";
|
|
$| = 1;
|
|
|
|
foreach $dbname (<*.db>) {
|
|
$dbname =~ s/\.db$//;
|
|
my $target = "$snapdir/$dbname.txt";
|
|
print "Flattening db $dbname into $target\n";
|
|
|
|
dbmopen(%db, $dbname, undef) || die "Couldn't dbmopen \"$dbname\"";
|
|
open OUT, ">$target" or die "$target: $!";
|
|
print OUT "# $dbname at ",localtime(time),"\n";
|
|
|
|
my $key;
|
|
foreach $key (keys %db) {
|
|
my $val = $db{$key};
|
|
chomp $val;
|
|
print OUT "$key => $val\n";
|
|
}
|
|
|
|
dbmclose(%db);
|
|
close OUT;
|
|
sleep 1;
|
|
}
|
|
|