Backup-EZ
view release on metacpan or search on metacpan
lib/Backup/EZ.pm view on Meta::CPAN
my $ez = Backup::EZ->new;
$ez->backup;
=head1 DESCRIPTION
Backup::EZ is backup software that is designed to be as easy to use
as possible, yet provide a robust solution
If you only want to run backups, see the included command line utility
"ezbackup". See the README for configuration instructions.
=head1 SUBROUTINES/METHODS
=head2 new
optional args:
conf => $config_file
dryrun => $bool,
exclude_file => $rsync_excl_file
=cut
sub new {
my $class = shift;
my %a = @_;
my $self = {};
# uncoverable branch true
if ( $ENV{VERBOSE} ) {
setlogmask( LOG_UPTO(LOG_DEBUG) );
$self->{syslog_option} = LOG_PID | LOG_PERROR;
}
else {
setlogmask( LOG_UPTO(LOG_INFO) );
$self->{syslog_option} = LOG_PID;
}
_read_conf( $self, @_ );
if ( $a{dryrun} ) {
$self->{dryrun} = 1;
}
if ( !defined $a{exclude_file} ) {
$self->{exclude_file} = EXCLUDE_FILE;
}
else {
$self->{exclude_file} = $a{exclude_file};
}
bless $self, $class;
return $self;
}
sub _debug {
my $self = shift;
my $msg = shift;
my $line = (caller)[2];
openlog "ezbackup", $self->{syslog_option}, LOG_SYSLOG;
syslog LOG_DEBUG, "($line) $msg";
closelog;
}
#sub _error {
# my $self = shift;
# my $msg = shift;
#
# openlog "ezbackup", $self->{syslog_option}, LOG_LOCAL7;
# syslog LOG_ERR, $msg;
# closelog;
#}
sub _info {
my $self = shift;
my $msg = shift;
openlog "ezbackup", $self->{syslog_option}, LOG_SYSLOG;
syslog LOG_INFO, $msg;
closelog;
}
sub _read_conf {
my $self = shift;
my %a = @_;
# uncoverable branch false
my $conf = $a{conf} ? $a{conf} : CONF;
my $config = Config::General->new(
-ConfigFile => $conf,
-ForceArray => 1,
-LowerCaseNames => 1,
-AutoTrue => 1,
);
my %conf = $config->getall;
_debug( $self, Dumper \%conf );
foreach my $key ( keys %conf ) {
if ( !defined $conf{backup_host} ) {
$conf{backup_host} = DEST_HOSTNAME;
}
if ( !defined $conf{copies} ) {
$conf{copies} = COPIES;
}
if ( !defined $conf{append_machine_id} ) {
$conf{append_machine_id} = DEST_APPEND_MACH_ID;
}
if ( !defined $conf{use_sudo} ) {
$conf{use_sudo} = USE_SUDO;
}
( run in 2.070 seconds using v1.01-cache-2.11-cpan-302cb4679cc )