#!/usr/bin/perl my $path="/var/www/geograph_live/backups"; my ($sec,$min,$hour,$day, $month, $year) = (localtime)[0,1,2,3,4,5]; $month++; $year+=1900; #now backup database my $file=sprintf("geograph_db_%04d-%02d-%02d_%02d%02d.mysql.gz", $year, $month, $day, $hour, $min, $sec); my $outfile="$path/$file"; print "Backing up live database, please wait...\n"; $cmd="/usr/bin/mysqldump --no-defaults --opt ". ##SEE: http://www.geograph.org.uk/admin/tables.php #derived tables - will be rebuilt "--ignore-table=geograph_live.gridimage_search ". "--ignore-table=geograph_live.gridimage_kml ". "--ignore-table=geograph_live.user_gridsquare ". "--ignore-table=geograph_live.user_stat ". "--ignore-table=geograph_live.user_quadsquare ". #large tables - not worth backing up "--ignore-table=geograph_live.gridimage_exif1 ". "--ignore-table=geograph_live.gridimage_exif ". #static tables - not worth backing up "--ignore-table=geograph_live.os_gaz ". "--ignore-table=geograph_live.placename_index ". "--ignore-table=geograph_live.loc_placenames ". "--ignore-table=geograph_live.loc_abgaz ". "--ignore-table=geograph_live.loc_wikipedia ". "--ignore-table=geograph_live.loc_ppl ". "--ignore-table=geograph_live.loc_towns ". #various tmp tables - some are big! "--ignore-table=geograph_live.aagaz ". "--ignore-table=geograph_live.gridimage_land ". "--ignore-table=geograph_live.tmp_percentage ". "--ignore-table=geograph_live.tmplook ". "--ignore-table=geograph_live.user_dev ". "--ignore-table=geograph_live.devuser ". "--ignore-table=geograph_live.gridsquare_land ". "-ugeograph -pm4pp3r geograph_live | gzip > $outfile"; `$cmd`; my $size=(stat($outfile))[7]; print "Completed. $outfile ($size bytes)\n\n"; #now clean out old backups print "Deleting old backups...\n"; my $age=14; opendir(DIR, $path) or die "can't opendir $path: $!"; while (defined(my $file = readdir(DIR))) { my $full=$path."/".$file; if (-f $full && -M $full > $age) { unlink($full); print " deleting $full\n"; } } closedir(DIR); print "Completed!\n";