Archiviare dei backup con BackupPC: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
mNo edit summary
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Archiviazione Manuale=
* Vedi [https://akutz.wordpress.com/2008/12/23/creating-archives-with-backuppc-and-7zip/ Creating archives with BackupPC and 7zip | akutz's blog]
=Archiviazione da Interfaccia Web=
==Definizione host fittizio di archiviazione ==
* Impostare l'host fittizio di backup
* Impostare l'host fittizio di backup
  sudoedit /etc/backuppc/hosts
  sudoedit /etc/backuppc/hosts


  archive        0              backuppc        miaemail@dominio.dom
  archive        0              backuppc        miaemail@dominio.dom
* Creare il file di configurazione dell'host fittizio:
sudoedit /etc/backuppc/archive.pl
<pre>
$Conf{XferMethod} = 'archive';
$Conf{ClientTimeout} = '172800';
$Conf{ArchiveComp} = 'gzip';
$Conf{ArchiveCompExt} = '.gz';
$Conf{ArchiveSplit} = '0';
$Conf{ArchivePar} = '0';
$Conf{ArchiveDest} = '/media/usb-backup/archive';
$Conf{DumpPostUserCmd} = undef;
$Conf{DumpPreUserCmd} = undef;
$Conf{CompressLevel} = '9';
#$Conf{ArchivePreUserCmd} = '/usr/local/bin/archive-pre';
#$Conf{ArchivePostUserCmd} = '/usr/local/bin/archive-post $xferOK';
</pre>
* Creare la cartella nel pool:
sudo mkdir -p /var/lib/backuppc/pc/archive
sudo chown backuppc:www-data /var/lib/backuppc/pc/archive
sudo chmod g-rwx /var/lib/backuppc/pc/archive
* Riavviare backuppc
systemctl restart backuppc.service
* Ora è possibile entrare via web nell'host "archive" e lanciare l'archiviazione
===Fix per Debian Squeeze===
* Con Debian Squeeze, lo script per sottomettere l'archiviazione non permette di comprimere e splittare.
* Copiare lo script:
sudo cp  /usr/share/backuppc/bin/BackupPC_archiveStart /usr/local/sbin/BackupPC_archiveStart.custom
* Modificare come segue:
vi /tmp/patch1.diff
<pre>
--- /usr/share/backuppc/bin/BackupPC_archiveStart      2009-11-25 16:11:48.000000000 +0100
+++ /usr/local/sbin/BackupPC_archiveStart.custom        2011-11-10 12:39:00.977406468 +0100
@@ -94,10 +94,10 @@
my %ArchiveReq = (
    archiveloc  => $bpc->{Conf}{ArchiveDest},
    archtype    => 0,
-    compression => $bpc->{Conf}{CatPath},
-    compext    => '.raw',
+    compression => $bpc->{Conf}{ArchiveComp},
+    compext    => $bpc->{Conf}{ArchiveCompExt},
    parfile    => $bpc->{Conf}{ArchivePar},
-    splitsize  => '0000000',
+    splitsize  => $bpc->{Conf}{ArchiveSplit},
    host        => $ArchiveHost,
    HostList    => \@HostList,
    BackupList  => \@BackupList,
</pre>
cd /usr/local/sbin
sudo patch < /tmp/patch1.diff


* Creare il file di configurazione
* Creare il file di configurazione
Line 10: Line 81:
$Conf{XferMethod} = 'archive';
$Conf{XferMethod} = 'archive';
$Conf{ClientTimeout} = 172800 ;
$Conf{ClientTimeout} = 172800 ;
$Conf{ArchiveComp} = '/usr/bin/pigz';
$Conf{ArchiveComp} = 'gzip';
$Conf{ArchiveCompExt} = '.gz';
$Conf{ArchiveCompExt} = '.gz';
$Conf{ArchiveSplit} = '0';
$Conf{ArchiveSplit} = '0';
Line 16: Line 87:
$Conf{ArchiveDest} = '/media/archive';
$Conf{ArchiveDest} = '/media/archive';
$Conf{ArchivePostUserCmd} = '/usr/local/bin/ArchivePostUserCmd $client $xferOK $host $HostList $BackupList $moreUsers'
$Conf{ArchivePostUserCmd} = '/usr/local/bin/ArchivePostUserCmd $client $xferOK $host $HostList $BackupList $moreUsers'
$Conf{GzipPath} = '/usr/bin/pigz';
# Utilizza pigz invece di gzip
$Conf{ParPath} = '/bin/true'
# Disabilita la generazione delle parità, che raddoppierebbo il tempo di completamento.
# Purtroppo l'opzione non funziona:
# $Conf{ArchveParFile} = 0;
# Oppure è $Conf{ArchivePar} ?
#
EOFile
EOFile
</pre>
</pre>


* Creare la directory dove verranno archiviati i files:
sudo mkdir -p /media/archive
* Impostare i diritti
sudo chown backuppc:www-data /media/archive/
* Installare pigz per la compressione:
sudo apt-get install pigz
==Script di notifica==
*Creare lo script di notifica  
*Creare lo script di notifica  
<pre>
<pre>
Line 65: Line 156:
fi
fi


echo -e "echo $MSG  mail -s ${SUBJECT} ${RECIPIENTS}
echo -e "echo $MSG  mail -s ${SUBJECT} ${RECIPIENTS}"
/usr/bin/logger -t BackupPcArchive "${SUBJECT} - ${MSG}"
/usr/bin/logger -t BackupPcArchive "${SUBJECT} - ${MSG}"
echo -e $MSG | mail -s "${SUBJECT}" ${RECIPIENTS}
echo -e $MSG | mail -s "${SUBJECT}" ${RECIPIENTS}
Line 81: Line 172:
  sudo chmod +x /usr/local/bin/ArchivePostUserCmd
  sudo chmod +x /usr/local/bin/ArchivePostUserCmd


* Impostare i destinatari
sudoedit /usr/local/bin/ArchivePostUserCmd
RECIPIENTS="user1@example.com,user2@example.com"
* Riavviare backuppc
* Riavviare backuppc
  sudo invoke-rc.d backuppc restart
  sudo invoke-rc.d backuppc restart
* Creare la cartella:
sudo mkdir -p /var/lib/backuppc/pc/archive; sudo chown backuppc:www-data /var/lib/backuppc/pc/archive; sudo chmod o-rwx /var/lib/backuppc/pc/archive
* Impostare il mount automatico del disco USB utilizzato per il backup, come indicato in [[Montare un disco USB automaticamente in Debian]]


* Da interfaccia web, selezionare l'host ''archive'' e fare l'archiviazione, oppure lanciarla da command line:
* Da interfaccia web, selezionare l'host ''archive'' e fare l'archiviazione, oppure lanciarla da command line:
  sudo -u backuppc /usr/share/backuppc/bin/BackupPC_archiveStart  archive backuppc host_da_archiviare
  sudo -u backuppc /usr/share/backuppc/bin/BackupPC_archiveStart  archive backuppc host_da_archiviare


==Fix per Debian Squeeze==
* Per utilizzare lo script patchato di Debian Squeeze:
sudo -u backuppc /usr/local/sbin/BackupPC_archiveStart.custom  archive backuppc ${HOSTS2BACKUP}


* Con Debian Squeeze, lo script per sottomettere l'archiviazione non permette di comprimere e splittare.
==Archiviazione automatica all'inserimento di un disco usb==


* Copiare lo script:
* Impostare il mount automatico del disco USB utilizzato per il backup, come indicato in [[Montare un disco USB automaticamente in Debian]]
sudo cp  /usr/share/backuppc/bin/BackupPC_archiveStart /usr/local/sbin/BackupPC_archiveStart.custom


* Modificare come segue:
* Assegnare lo script da far eseguire ad udev. Questo provvede a conservare solo gli ultimi 4 backup di ogni host:
diff -u /usr/share/backuppc/bin/BackupPC_archiveStart /usr/local/sbin/BackupPC_archiveStart.custom
 
<pre>
--- /usr/share/backuppc/bin/BackupPC_archiveStart      2009-11-25 16:11:48.000000000 +0100
+++ /usr/local/sbin/BackupPC_archiveStart.custom        2011-11-10 12:39:00.977406468 +0100
@@ -94,10 +94,10 @@
my %ArchiveReq = (
    archiveloc  => $bpc->{Conf}{ArchiveDest},
    archtype    => 0,
-    compression => $bpc->{Conf}{CatPath},
-    compext    => '.raw',
+    compression => $bpc->{Conf}{ArchiveComp},
+    compext    => $bpc->{Conf}{ArchiveCompExt},
    parfile    => $bpc->{Conf}{ArchivePar},
-    splitsize  => '0000000',
+    splitsize  => $bpc->{Conf}{ArchiveSplit},
    host        => $ArchiveHost,
    HostList    => \@HostList,
    BackupList  => \@BackupList,
</pre>
 
* Inserire i parametri nel file di config:
 
sudoedit /etc/backuppc/archive.pl
 
<pre>
$Conf{XferMethod} = 'archive';
$Conf{ClientTimeout} = 172800 ;
$Conf{ArchiveComp} = '/usr/bin/pigz';
$Conf{ArchiveCompExt} = '.gz';
$Conf{ArchiveSplit} = '0';
#$Conf{ArchiveSplit} = '1999M';
$Conf{ArchiveDest} = '/media/archive';
$Conf{ArchivePostUserCmd} = '/usr/local/bin/ArchivePostUserCmd $client $xferOK $
host $HostList $BackupList $moreUsers';
</pre>
 
* Sottomettere il job con questo script, che provvede a conservare solo gli ultimi 4 backup di ogni host:


  sudoedit /usr/local/sbin/BackupPcArchive
  sudoedit /usr/local/sbin/BackupPcArchive
Line 151: Line 203:
sudo /bin/umount /media/archive > /dev/null 2>&1
sudo /bin/umount /media/archive > /dev/null 2>&1
sudo mount /dev/sdd1 /media/archive > /dev/null
sudo mount /dev/sdd1 /media/archive > /dev/null
# Erase oldest files
# Erase oldest files
cd /media/archive
cd /media/archive
Line 163: Line 216:
         fi
         fi
done
done
# These scripts forks in the background
 
# To run it manually
#/usr/share/backuppc/bin/BackupPC_archiveStart  archive backuppc marsrv01 firemar marstor01
 
 
/usr/bin/logger -t BackupPcArchive "Queueing archiving of ${HOSTS2BACKUP} ... "
/usr/bin/logger -t BackupPcArchive "Queueing archiving of ${HOSTS2BACKUP} ... "
#/usr/share/backuppc/bin/BackupPC_archiveStart  archive backuppc marsrv01 firemar marstor01
# This scripts forks in the background
/usr/local/sbin/BackupPC_archiveStart.custom  archive backuppc ${HOSTS2BACKUP}
/usr/local/sbin/BackupPC_archiveStart.custom  archive backuppc ${HOSTS2BACKUP}
/usr/bin/logger -t BackupPcArchive "Jobs queued."
/usr/bin/logger -t BackupPcArchive "Jobs queued."
# umount and remove mountpint is done in /usr/local/bin/ArchivePostUserCmd
# umount and remove mountpoint is done in /usr/local/bin/ArchivePostUserCmd
</pre>
</pre>


* Renderlo eseguibile
sudo chmod +x /usr/local/sbin/BackupPcArchive


==Riferimenti==
=Riferimenti=
*[http://backuppc.sourceforge.net/faq/BackupPC.html#archive_functions BackupPC Documentation - Archive functions]
*[http://backuppc.sourceforge.net/faq/BackupPC.html#archive_functions BackupPC Documentation - Archive functions]
*[http://stanlarson.com/wordpress/?p=119 StanLarson.com » Getting BackupPC Data Off Site]
*[http://stanlarson.com/wordpress/?p=119 StanLarson.com » Getting BackupPC Data Off Site]
*[http://www.pcc-services.com/sles/backuppc6.html Deploying BackupPC on Suse Linux Enterprise Server - pcc-services.com]
*[http://www.pcc-services.com/sles/backuppc6.html Deploying BackupPC on Suse Linux Enterprise Server - pcc-services.com]
*[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=518943 #518943 - backuppc: Archive run from commandline does not compress - Debian Bug report logs]
*[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=518943 #518943 - backuppc: Archive run from commandline does not compress - Debian Bug report logs]

Latest revision as of 14:12, 22 October 2018

Archiviazione Manuale

Archiviazione da Interfaccia Web

Definizione host fittizio di archiviazione

  • Impostare l'host fittizio di backup
sudoedit /etc/backuppc/hosts
archive         0               backuppc        miaemail@dominio.dom
  • Creare il file di configurazione dell'host fittizio:
sudoedit /etc/backuppc/archive.pl
$Conf{XferMethod} = 'archive';
$Conf{ClientTimeout} = '172800';
$Conf{ArchiveComp} = 'gzip';
$Conf{ArchiveCompExt} = '.gz';
$Conf{ArchiveSplit} = '0';
$Conf{ArchivePar} = '0';
$Conf{ArchiveDest} = '/media/usb-backup/archive';
$Conf{DumpPostUserCmd} = undef;
$Conf{DumpPreUserCmd} = undef;
$Conf{CompressLevel} = '9';
#$Conf{ArchivePreUserCmd} = '/usr/local/bin/archive-pre';
#$Conf{ArchivePostUserCmd} = '/usr/local/bin/archive-post $xferOK';
  • Creare la cartella nel pool:
sudo mkdir -p /var/lib/backuppc/pc/archive
sudo chown backuppc:www-data /var/lib/backuppc/pc/archive
sudo chmod g-rwx /var/lib/backuppc/pc/archive


  • Riavviare backuppc
systemctl restart backuppc.service
  • Ora è possibile entrare via web nell'host "archive" e lanciare l'archiviazione


Fix per Debian Squeeze

  • Con Debian Squeeze, lo script per sottomettere l'archiviazione non permette di comprimere e splittare.
  • Copiare lo script:
sudo cp  /usr/share/backuppc/bin/BackupPC_archiveStart /usr/local/sbin/BackupPC_archiveStart.custom
  • Modificare come segue:
vi /tmp/patch1.diff
--- /usr/share/backuppc/bin/BackupPC_archiveStart       2009-11-25 16:11:48.000000000 +0100
+++ /usr/local/sbin/BackupPC_archiveStart.custom        2011-11-10 12:39:00.977406468 +0100
@@ -94,10 +94,10 @@
 my %ArchiveReq = (
     archiveloc  => $bpc->{Conf}{ArchiveDest},
     archtype    => 0,
-    compression => $bpc->{Conf}{CatPath},
-    compext     => '.raw',
+    compression => $bpc->{Conf}{ArchiveComp},
+    compext     => $bpc->{Conf}{ArchiveCompExt},
     parfile     => $bpc->{Conf}{ArchivePar},
-    splitsize   => '0000000',
+    splitsize   => $bpc->{Conf}{ArchiveSplit},
     host        => $ArchiveHost,
     HostList    => \@HostList,
     BackupList  => \@BackupList,
cd /usr/local/sbin
sudo patch < /tmp/patch1.diff
  • Creare il file di configurazione
cat | sudo tee /etc/backuppc/archive.pl >/dev/null <<'EOFile'

$Conf{XferMethod} = 'archive';
$Conf{ClientTimeout} = 172800 ;
$Conf{ArchiveComp} = 'gzip';
$Conf{ArchiveCompExt} = '.gz';
$Conf{ArchiveSplit} = '0';
#$Conf{ArchiveSplit} = '1999M';
$Conf{ArchiveDest} = '/media/archive';
$Conf{ArchivePostUserCmd} = '/usr/local/bin/ArchivePostUserCmd $client $xferOK $host $HostList $BackupList $moreUsers'

$Conf{GzipPath} = '/usr/bin/pigz';
# Utilizza pigz invece di gzip

$Conf{ParPath} = '/bin/true'
# Disabilita la generazione delle parità, che raddoppierebbo il tempo di completamento.
# Purtroppo l'opzione non funziona:
# $Conf{ArchveParFile} = 0;
# Oppure è $Conf{ArchivePar} ?
#
EOFile
  • Creare la directory dove verranno archiviati i files:
sudo mkdir -p /media/archive
  • Impostare i diritti
sudo chown backuppc:www-data /media/archive/
  • Installare pigz per la compressione:
sudo apt-get install pigz

Script di notifica

  • Creare lo script di notifica
cat | sudo tee /usr/local/bin/ArchivePostUserCmd </dev/null <<'EOFReal'
#!/bin/bash
RECIPIENTS="user1@example.com,user2@example.com"

client="$1"
xferOK="$2"
host="$3"
hostList="$4"
BackupList="$5"
moreUsers="$6"

if [ "$xferOK" -eq 1 ]
then
        SUBJECT="Archiving Succesful on $client"
        MSG=$(cat <<EOFile
The Archiving of $client was succesfull.

Parameters are:
client="$1"
xferOK="$2"
host="$3"
hostList="$4"
BackupList="$5"
moreUsers="$6"
EOFile
)

else
        SUBJECT="Archiving UNSUCCESSFUL on $client"

        MSG=$(cat <<EOFile
The Archiving of $client was UNSUCCESSFUL.

Parameters are:
client="$1"
xferOK="$2"
host="$3"
hostList="$4"
BackupList="$5"
moreUsers="$6"
EOFile
)
fi

echo -e "echo $MSG  mail -s ${SUBJECT} ${RECIPIENTS}"
/usr/bin/logger -t BackupPcArchive "${SUBJECT} - ${MSG}"
echo -e $MSG | mail -s "${SUBJECT}" ${RECIPIENTS}
echo -e $MSG | mail -s "${SUBJECT}" ${RECIPIENTS}
/usr/bin/logger -t BackupPcArchive "Umounting device."
sudo umount /dev/sdd1
sudo rmdir /media/archive
EOFReal
  • Impostare i destinatari della notifica:
sudoedit /usr/local/bin/ArchivePostUserCmd
  • Rendere lo script eseguibile
sudo chmod +x /usr/local/bin/ArchivePostUserCmd
  • Impostare i destinatari
sudoedit /usr/local/bin/ArchivePostUserCmd
RECIPIENTS="user1@example.com,user2@example.com"

  • Riavviare backuppc
sudo invoke-rc.d backuppc restart
  • Da interfaccia web, selezionare l'host archive e fare l'archiviazione, oppure lanciarla da command line:
sudo -u backuppc /usr/share/backuppc/bin/BackupPC_archiveStart  archive backuppc host_da_archiviare
  • Per utilizzare lo script patchato di Debian Squeeze:
sudo -u backuppc /usr/local/sbin/BackupPC_archiveStart.custom  archive backuppc ${HOSTS2BACKUP}

Archiviazione automatica all'inserimento di un disco usb

  • Assegnare lo script da far eseguire ad udev. Questo provvede a conservare solo gli ultimi 4 backup di ogni host:
sudoedit /usr/local/sbin/BackupPcArchive
#!/bin/bash
/usr/bin/logger -t BackupPcArchive "Udev parameters: ACTION=${ACTION} - DEVICE=${DEVICE}"
/usr/bin/logger -t BackupPcArchive "Starting archiving ..."
/usr/bin/logger -t BackupPcArchive "Creating mount point ..."
sudo mkdir -p /media/archive
/usr/bin/logger -t BackupPcArchive "Mounting device ..."
sudo /bin/umount /media/archive > /dev/null 2>&1
sudo mount /dev/sdd1 /media/archive > /dev/null

# Erase oldest files
cd /media/archive
HOSTS2BACKUP="firemar marsrv01 marstor01"
for BKPHOST in $HOSTS2BACKUP
do
        FILES2DELETE=$( (/bin/ls -1v ${BKPHOST}* 2>/dev/null | /usr/bin/tail -n 4;/bin/ls -1 ${BKPHOST}* 2>/dev/null)| /usr/bin/sort | /usr/bin/uniq -u )
        if [ -n "$FILES2DELETE" ]
        then
                /usr/bin/logger -t BackupPcArchive "Deleting files '$FILES2DELETE'"
                /bin/rm -f $FILES2DELETE
        fi
done

# To run it manually
#/usr/share/backuppc/bin/BackupPC_archiveStart  archive backuppc marsrv01 firemar marstor01


/usr/bin/logger -t BackupPcArchive "Queueing archiving of ${HOSTS2BACKUP} ... "
# This scripts forks in the background
/usr/local/sbin/BackupPC_archiveStart.custom  archive backuppc ${HOSTS2BACKUP}
/usr/bin/logger -t BackupPcArchive "Jobs queued."
# umount and remove mountpoint is done in /usr/local/bin/ArchivePostUserCmd
  • Renderlo eseguibile
sudo chmod +x /usr/local/sbin/BackupPcArchive

Riferimenti