|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] sqlite_backup.pl: Create backup of DB using locks to avoid problems with queuerunner.
Hi Ian,
I forgot to add the runes for the cronjob:
# SQLite backup for xen-devel-bugs DB. Runs everyday at 2:07 to get DB backup
# ready for offsite backup by Citrix (run at 3:30 am)
7 2 * * * /usr/bin/env
PERLLIB=/srv/xen-devel-bugs/share/perl/5.14.2/
/srv/xen-devel-bugs/lib/emesinae/sqlite_backup.pl
Cheers,
Birin
On 19 May 2014 10:46, Birin Sanchez <birin.sanchez@xxxxxxxxxx> wrote:
>
> ---
> config/emesinae.conf | 3 +++
> config/examples/test/emesinae.conf | 3 +++
> scripts/sqlite_backup.pl | 39
> ++++++++++++++++++++++++++++++++++++++
> 3 files changed, 45 insertions(+)
> create mode 100755 scripts/sqlite_backup.pl
>
> diff --git a/config/emesinae.conf b/config/emesinae.conf
> index 0aa1b3f..dd58c94 100644
> --- a/config/emesinae.conf
> +++ b/config/emesinae.conf
> @@ -76,3 +76,6 @@ $c{ControlBlacklistPath} =
> "/etc/emesinae/control.blacklist";
> # Severity levels, in decending order of criticality
> @{ $c{SeverityLevels} } = qw/blocker critical normal wishlist/;
> $c{DefaultSeverity} = "normal";
> +
> +# Backup configuration
> +$c{BackupDir} = "/var/backups/";
> diff --git a/config/examples/test/emesinae.conf
> b/config/examples/test/emesinae.conf
> index 528dcb6..11e4fad 100644
> --- a/config/examples/test/emesinae.conf
> +++ b/config/examples/test/emesinae.conf
> @@ -70,3 +70,6 @@ $c{ControlBlacklistPath} =
> "/srv/test/etc/control.blacklist";
> # Severity levels, in decending order of criticality
> @{ $c{SeverityLevels} } = qw/blocker critical normal wishlist/;
> $c{DefaultSeverity} = "normal";
> +
> +# Backup configuration
> +$c{BackupDir} = "/srv/test/var/backups/";
> diff --git a/scripts/sqlite_backup.pl b/scripts/sqlite_backup.pl
> new file mode 100755
> index 0000000..557bc59
> --- /dev/null
> +++ b/scripts/sqlite_backup.pl
> @@ -0,0 +1,39 @@
> +#!/usr/bin/perl
> +#
> +# Creates a backup of the current DB in $c{BackupDir}
> +# using locks to avoid race conditions with queuerunner
> +
> +use strict;
> +use warnings;
> +
> +use Emesinae::Common;
> +use Emesinae::Paths;
> +use File::Copy;
> +use File::Basename;
> +
> +readconfig();
> +
> +chdir( $c{BackupDir} ) || die("chdir to dir $c{BackupDir}: $!");
> +
> +
> +my $lock = subsyslock('queuerunner');
> +
> +my $BackupDB = $c{BackupDir} . basename($c{DB});
> +my $BackupDBxz = $c{BackupDir} . basename($c{DB}) . ".xz";
> +my $OldBackupDBxz = $c{BackupDir} . basename($c{DB}) . ".old.xz";
> +
> +if ( -f $BackupDBxz ) {
> + move($BackupDBxz, $OldBackupDBxz) or die ("move failed: $!");
> +}
> +
> +my $dbh = DBI->connect("dbi:SQLite:dbname=$c{DB}","","");
> +$dbh->sqlite_backup_to_file( $BackupDB );
> +undef $dbh;
> +
> +my @args = ("xz", "$BackupDB");
> +system(@args) == 0
> + or die ("xz compress failed: $?");
> +
> +subsysunlock($lock);
> +
> +exit(0)
> --
> 1.8.3.2
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |