Hi Jean, thank you very much.

It looks great, but if i can ask, what do i need to change if i want to send 
email at more addresses or at address which has nothing to do with users from 
backuppc ?

And little OT question, not only for you.
When i send email from backuppc it comes from [EMAIL PROTECTED] to $user and 
even 
if i change EMailUserDestDomain and EMailFromUserName nothing change.

Thanx for help



On Thursday 18 October 2007 22:09:41 Jean-Michel Beuken wrote:
> Dear  Martin,
>
> > I am searching after some script or possibility to send email at some
> > addresses after every backup, and in this email i need :
> >
> > 1. What has been backed up.
> > 2. When
> > 3. If backup was successfull or not
> > 4. If not - why
>
> almost all yours requests ;-)
>
> in config.pl (or in PC-config file) :
>
> - send email after a backup :
>
> $Conf{DumpPostUserCmd} = '/usr/local/BackupPC/bin/BackupNotify $user
> $xferOK $host $type $client $hostIP ';
>
> - or only if the backup is ok
>
> $Conf{DumpPostUserCmd} = '/usr/local/BackupPC/bin/BackupNotify_succes
> $user $xferOK $host $type $client $hostIP ';
>
> - or only if the backup is not ok
>
> $Conf{DumpPostUserCmd} = '/usr/local/BackupPC/bin/BackupNotify_echec
> $user $xferOK $host $type $client $hostIP ';
>
>
> above 2 scripts (not yet finished but working...) :
>
> - one sends email with the results (BackupNotify)
> - second (analyse_backups) extracts errors from XferLOG  (I'm taken some
> part of code in the package BackupPC (BackupPC_dump))
>
> regards
>
> jmb
>
> ---------------------------------------------------------------------------
>- [EMAIL PROTECTED] /usr/local/BackupPC/bin > cat BackupNotify
>
> #!/usr/local/bin/perl
> #################
> #
> # BackupNotify              : send mail after a good or a bad backup
> # BackupNotify_succes : send email only after a good backup
> # BackupNotify_echec  : send email only after a bad backup
> #
> # jmb 20/06/2006
> # jmb 10/10/2007
> #
> # parameters : $user $xferOK $host $type $client $hostIP
> #
> use Socket;
>
> $mailprog = '/usr/sbin/sendmail';
>
> $user = $ARGV[0];
> $xferOK = $ARGV[1];
> $host = $ARGV[2];
> $type = $ARGV[3];
> $client = $ARGV[4];
> $hostIP = $ARGV[5];
>
> $recipient = $user;
>
> $script = $0;
> $succes = 1;
> $echec = 1;
>
> if ($script  =~ 'succes'){ $echec = 0; }
> if ($script =~ 'echec'){ $succes = 0; }
>
> #
> # extract only errors from XferLOG
> #
> my $status=`/usr/local/BackupPC/bin/analyse_backups $client`;
> ($xferErr,$badFile,$TopDir,$xferlognum) = split(/-/,$status);
> chop($xferlognum);
> $xferErr = int($xferErr);
> $xferlognum = int($xferlognum);
> my $list_error=`/usr/local/BackupPC/bin/BackupPC_zcat
> $TopDir/pc/$client/XferLOG.$xferlognum.z | grep DENIED | grep -v 'System
> Volume Information' | grep -v RECYCLER |grep -v Watson`;
>
> #
> #
> $msg = "Rapport de sauvegarde de BackupPC pour le PC \"$client
> ($hostIP)\" : \n\n";
> if ( $xferOK) {
>         if ( length($list_error) > 0) {
>                 $msg .= "Le backup ($type) s'est PRESQUE bien
> deroule...\n\n";
>                 $msg .= "Des erreurs de transfert se sont
> produites...\n\n"; $msg .= "Voici la liste des erreurs :\n";
>                 $msg .= "$list_error\n";
>                 $msg .= "Ceci peut se produire dans les situations
> suivantes :\n";
>                 $msg .= "   - lorsqu'un fichier est en cours
> d'utilisation\n";
>                 $msg .= "   - lorsqu'un dossier/fichier a des droits
> d'acces trop restrictifs\n\n";
>                 $msg .= "De toute facon, les gestionnaires sont
> prevenus...\n";
>                 $ccrecipient = "[EMAIL PROTECTED]";
>                 $subject = "Backup de $client : ok MAIS... !";
>                 if ( $succes ){ &sendmail($msg); };
>         } else {
>                 $msg .= "Le backup ($type) s'est bien deroule\n";
>                 $ccrecipient = "";
>                 $subject = "Backup de $client : OK !";
>                 if ( $succes ){ &sendmail($msg); };
>         }
> } else {
>         $msg .= "Le backup ($type) a pose probleme ! \n";
>         $subject = "Probleme de backup de $client...";
>         if ( $echec ) { &sendmail($msg); };
> }
>
> sub sendmail {
>    my($msg) = @_;
>    open(MAIL, "|$mailprog -t") && do {
>         print MAIL "To: $recipient\n";
>         print MAIL "From: [EMAIL PROTECTED]";
>         print MAIL "Cc: $ccrecipient\n";
> #        print MAIL "Bcc:\n";
>         print MAIL "Subject: $subject \n\n";
>         print MAIL "$msg\n";
>         print MAIL "\nVisiter regulierement le site
> <http://www.uclouvain.be/backuppc>\n";
>         print MAIL "\nContact support : mailto:[EMAIL PROTECTED]";
>         close (MAIL);
>    };
> }
> ---------------------------------------------------------------------------
>-
>
> [EMAIL PROTECTED] /usr/local/BackupPC/bin > cat analyse_backups
> #!/usr/local/bin/perl
> #============================================================= -*-perl-*-
> #
> # BackupPC_
>
> use strict;
> no  utf8;
> use lib "/usr/local/BackupPC3/lib";
> use BackupPC::Lib;
> use BackupPC::FileZIO;
> use BackupPC::Storage;
> use BackupPC::Xfer::Smb;
> use BackupPC::Xfer::Tar;
> use BackupPC::Xfer::Rsync;
> use BackupPC::Xfer::BackupPCd;
> use Encode;
> use Socket;
> use File::Path;
> use File::Find;
> use Getopt::Std;
>
> ###########################################################################
> # Initialize
> ###########################################################################
>
> die("BackupPC::Lib->new failed\n") if ( !(my $bpc = BackupPC::Lib->new) );
> my $TopDir = $bpc->TopDir();
> my $BinDir = $bpc->BinDir();
> my %Conf   = $bpc->Conf();
> my $NeedPostCmd;
> my $Hosts;
> my $SigName;
> my $Abort;
>
> $bpc->ChildInit();
>
> my %opts;
> if ( !getopts("defiv", \%opts) || @ARGV != 1 ) {
>     print("usage: $0 [-d] [-e] [-f] [-i] [-v] <client>\n");
>     exit(1);
> }
> if ( $ARGV[0] !~ /^([\w\.\s-]+)$/ ) {
>     print("$0: bad client name '$ARGV[0]'\n");
>     exit(1);
> }
>
> my $client = $1;   # BackupPC's client name (might not be real host name)
> my $hostIP;        # this is the IP address
> my $host;          # this is the real host name
> my($clientURI, $user);
> my $Dir     = "$TopDir/pc/$client";
> my @xferPid = ();
> my $tarPid  = -1;
> my($needLink, @Backups, $type);
> my($incrBaseTime, $incrBaseBkupNum, $incrBaseLevel, $incrLevel);
> my $lastFullTime = 0;
> my $lastIncrTime = 0;
> my $partialIdx = -1;
> my $partialNum;
> my $lastBkupNum;
> my $lastPartial = 0;
> my(@lastIdxByLevel, $incrCntSinceFull);
>
> #
> # Read Backup information, and find times of the most recent full and
> # incremental backups.  Also figure out which backup we will use
> # as a starting point for an incremental.
> #
> #    my $flds = {
> #        BackupFields => [qw(
> #                    num type startTime endTime
> #                    nFiles size nFilesExist sizeExist nFilesNew sizeNew
> #                    xferErrs xferBadFile xferBadShare tarErrs
> #                    compress sizeExistComp sizeNewComp
> #                    noFill fillFromNum mangle xferMethod level
> #                    charset
> #                )],
> #
> @Backups = $bpc->BackupInfoRead($client);
> ## @Backups = sort( { $a->{startTime} <=> $b->{startTime} }, @Backups);
> my $maxbackups;
> for ( my $i = 0 ; $i < @Backups ; $i++ ) {
>     $needLink = 1 if ( $Backups[$i]{nFilesNew} eq ""
>
>                         || -f "$Dir/NewFileList.$Backups[$i]{num}" );
>
>     if ( $Backups[$i]{type} eq "full" ) {
>         $incrCntSinceFull = 0;
>         $lastBkupNum = $Backups[$i]{num};
>         $lastIdxByLevel[0] = $i;
>         if ( $lastFullTime < $Backups[$i]{startTime} ) {
>             $lastFullTime = $Backups[$i]{startTime};
>         }
>     } elsif ( $Backups[$i]{type} eq "incr" ) {
>         $incrCntSinceFull++;
>         $lastBkupNum = $Backups[$i]{num};
>         $lastIdxByLevel[$Backups[$i]{level}] = $i;
>         $lastIncrTime = $Backups[$i]{startTime}
>                 if ( $lastIncrTime < $Backups[$i]{startTime} );
>     } elsif ( $Backups[$i]{type} eq "partial" ) {
>         $partialIdx  = $i;
>         $lastPartial = $Backups[$i]{startTime};
>         $partialNum  = $Backups[$i]{num};
>     }
>     $maxbackups = $i;
> }
> print
> "$Backups[$maxbackups]{xferErrs}-$Backups[$maxbackups]{xferBadFile}-$TopDir
>-$lastBkupNum\n";
>
> exit(0);



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
BackupPC-users mailing list
BackupPC-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/backuppc-users
http://backuppc.sourceforge.net/

Reply via email to