Archiviare dei backup con BackupPC: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
|||
| Line 1: | Line 1: | ||
==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 la cartella nel pool: | |||
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 | |||
===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 | |||
patch --dry-run < /tmp/patch1.diff | |||
* 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> | |||
* Creare il file di configurazione | * Creare il file di configurazione | ||
| Line 19: | Line 74: | ||
</pre> | </pre> | ||
* Creare la directory dove verranno archiviati i files: | |||
==Script di notifica== | |||
*Creare lo script di notifica | *Creare lo script di notifica | ||
<pre> | <pre> | ||
| Line 83: | Line 141: | ||
* Riavviare backuppc | * Riavviare backuppc | ||
sudo invoke-rc.d backuppc restart | sudo invoke-rc.d backuppc restart | ||
* 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 | ||
* 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== | |||
* | * Impostare il mount automatico del disco USB utilizzato per il backup, come indicato in [[Montare un disco USB automaticamente in Debian]] | ||
* 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 | sudoedit /usr/local/sbin/BackupPcArchive | ||
| Line 155: | Line 165: | ||
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 167: | Line 178: | ||
fi | fi | ||
done | 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} ... " | /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/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 | # umount and remove mountpoint is done in /usr/local/bin/ArchivePostUserCmd | ||
</pre> | </pre> | ||
Revision as of 12:40, 6 February 2012
Definizione host fittizio di archiviazione
- Impostare l'host fittizio di backup
sudoedit /etc/backuppc/hosts
archive 0 backuppc miaemail@dominio.dom
- 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 o-rwx /var/lib/backuppc/pc/archive
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 patch --dry-run < /tmp/patch1.diff
- Inserire i parametri nel file di config:
sudoedit /etc/backuppc/archive.pl
$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';
- Creare il file di configurazione
cat | sudo tee /etc/backuppc/archive.pl >/dev/null <<'EOFile'
$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'
EOFile
- Creare la directory dove verranno archiviati i files:
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
- 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
- Impostare il mount automatico del disco USB utilizzato per il backup, come indicato in Montare un disco USB automaticamente in Debian
- 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