Hetzner - DokuWiki

Duplicity Script
(User root in den Croneintrag hinzugefügt)
Zeile 15: Zeile 15:
 
Da kommt folgendes rein:
 
Da kommt folgendes rein:
  
BEGIN OF /usr/sbin/duplicity.sh
+
<pre>
#!/bin/sh
+
#!/bin/sh
#
+
#
# Script created on 17-6-2008
+
# Script created on 17-6-2008
#
+
#
# This script was created to make Duplicity backups.
+
# This script was created to make Duplicity backups.
# Full backups are made on the 1st day of each month.
+
# Full backups are made on the 1st day of each month.
# Then incremental backups are made on the other days.
+
# Then incremental backups are made on the other days.
#
+
#
  
# Loading the day of the month in a variable.
+
# Loading the day of the month in a variable.
date=`date +%d`
+
date=`date +%d`
  
  
  
 
  # Setting the pass phrase to encrypt the backup files. Will use symmetrical keys in this case.
 
  # Setting the pass phrase to encrypt the backup files. Will use symmetrical keys in this case.
PASSPHRASE='yoursecretgpgpassphrase'
+
PASSPHRASE='yoursecretgpgpassphrase'
export PASSPHRASE
+
export PASSPHRASE
  
# Setting the password for the FTP account that the
+
# Setting the password for the FTP account that the
# backup files will be transferred to.
+
# backup files will be transferred to.
FTP_PASSWORD='yourftppass'
+
FTP_PASSWORD='yourftppass'
export FTP_PASSWORD
+
export FTP_PASSWORD
 +
 
 +
# Check to see if we're at the first of the month.
 +
# If we are on the 1st day of the month, then run
 +
# a full backup. If not, then run an incremental
 +
# backup.
 +
if [ $date = 01 ]
 +
then
  
# Check to see if we're at the first of the month.
 
# If we are on the 1st day of the month, then run
 
# a full backup. If not, then run an incremental
 
# backup.
 
if [ $date = 01 ]
 
then
 
 
  duplicity remove-older-than 2M -v5 ftp://user@host/srv >>/var/log/duplicity/srv.log
 
  duplicity remove-older-than 2M -v5 ftp://user@host/srv >>/var/log/duplicity/srv.log
 
  duplicity remove-older-than 2M -v5 ftp://user@host/etc >>/var/log/duplicity/etc.log
 
  duplicity remove-older-than 2M -v5 ftp://user@host/etc >>/var/log/duplicity/etc.log
Zeile 56: Zeile 57:
 
  duplicity full -v5 --exclude-filelist /etc/duplicityfilelist.conf / ftp://user@host/system >>/var/log/duplicity/system.log
 
  duplicity full -v5 --exclude-filelist /etc/duplicityfilelist.conf / ftp://user@host/system >>/var/log/duplicity/system.log
  
else
+
else
 +
 
 
  duplicity remove-older-than 2M -v5 ftp://user@host/srv >>/var/log/duplicity/srv.log
 
  duplicity remove-older-than 2M -v5 ftp://user@host/srv >>/var/log/duplicity/srv.log
 
  duplicity remove-older-than 2M -v5 ftp://user@host/etc >>/var/log/duplicity/etc.log
 
  duplicity remove-older-than 2M -v5 ftp://user@host/etc >>/var/log/duplicity/etc.log
Zeile 67: Zeile 69:
 
  duplicity incremental -v5 --exclude-filelist /etc/duplicityfilelist.conf / ftp://user@host/system >>/var/log/duplicity/system.log
 
  duplicity incremental -v5 --exclude-filelist /etc/duplicityfilelist.conf / ftp://user@host/system >>/var/log/duplicity/system.log
  
 
+
fi
fi
+
 
  # Check http://www.nongnu.org/duplicity/duplicity.1.html
 
  # Check http://www.nongnu.org/duplicity/duplicity.1.html
 
  # for all the options available for Duplicity.
 
  # for all the options available for Duplicity.
Zeile 77: Zeile 78:
  
 
  exit 0
 
  exit 0
END OF /usr/sbin/duplicity.sh
+
</pre>
  
In diesem file haben wir eine fileliste zitiert. Diese muss auch erstellt werden:
+
Dateien oder Verzeichnisse, die nicht gesichert werden sollen, werden in der Datei ''/etc/duplicityfilelist.conf'' eingetragen, die im Skript per exclude-filelist an duplicity übergeben wird. Diese könnte z.B. folgenden Inhalt haben:
Erstellen wir also ein file der /etc/duplicityfilelist.conf heisst.
+
  
 
Da kommt folgendes rein:
 
 
BEGIN OF /etc/duplicityfilelist.conf
 
 
  - /dev
 
  - /dev
 
  - /proc
 
  - /proc
Zeile 94: Zeile 90:
 
  - /srv
 
  - /srv
 
  - /var/cache
 
  - /var/cache
END OF /etc/duplicityfilelist.conf
 
  
Zuletzt stellen wir ein cronjob auf.
+
Für eine regelmäßig Ausführung wird ein Cronjob benötigt. Dazu kann das Skript entweder unter ''/etc/cron.daily'' (täglich), ''/etc/cron.weekly'' (wöchentlich) oder ''/etc/cron.monthly'' (monatlich) abgelegt werden. Für eine genaue Einstellung des Zeitpunkts kann auch eine Crontab verwendet werden.
Erstellen wir ein file der /etc/cron.d/duplicity heisst , mit dem folgendem inhalt:
+
Hierfür wird eine Datei unter ''/etc/cron.d/'' erstellt:  
 
+
BEGIN OF /etc/cron.d/duplicity
+
# /etc/cron.d/duplicity
 
  0 0 * * * root /usr/sbin/duplicity.sh >/dev/null 2>&1
 
  0 0 * * * root /usr/sbin/duplicity.sh >/dev/null 2>&1
END OF /etc/cron.d/duplicity
 
 
 
So, das war's .<br>
 
Viel spass, und gutes backup.
 
  
Danke an sethx aus dem [http://forum.hetzner.de/wbb2/thread.php?threadid=11248 Hetznerforum].
+
  
--[[Benutzer:Deltaflyer|Deltaflyer]] 20:41, 17. Jun 2008 (CEST)
+
Ursprüngliche Version von sethx im [http://forum.hetzner.de/wbb2/thread.php?threadid=11248 Hetznerforum] veröffentlicht.
  
 
[[Kategorie:Dedizierte Server]]
 
[[Kategorie:Dedizierte Server]]

Version vom 31. August 2012, 07:53 Uhr

Dieses HowTo ist fuer duplicity 0.4.11 .

Hinweis: Dieses Script funktioniert nur, wenn man mit dem Backup am 01. eines Monats anfängt, oder zuerst manuell ein "Full Backup" erstellt

Nach der erfolgreichen installation von duplicity, wollen wir 2 monate lang einen taeglichen backup haben. Dazu, jeden ersten des monats soll ein voller backup erstellt werden.

In meinem fall, hab ich ein separates backup fuer /etc /home /srv [ was bei mir die meisten daten hat], und / .


So, das geht ganz einfach:

Erstellen wir mal ein file was /usr/sbin/duplicity.sh heisst. Sie muessen dan noch die informationen wie das ftp kennwort, den gpg passphrase den sie benutzen wollen, den ftp benutzername und den host, austauschen. Da kommt folgendes rein:

#!/bin/sh
#
# Script created on 17-6-2008
#
# This script was created to make Duplicity backups.
# Full backups are made on the 1st day of each month.
# Then incremental backups are made on the other days.
#

# Loading the day of the month in a variable.
date=`date +%d`



 # Setting the pass phrase to encrypt the backup files. Will use symmetrical keys in this case.
PASSPHRASE='yoursecretgpgpassphrase'
export PASSPHRASE

# Setting the password for the FTP account that the
# backup files will be transferred to.
FTP_PASSWORD='yourftppass'
export FTP_PASSWORD

# Check to see if we're at the first of the month.
# If we are on the 1st day of the month, then run
# a full backup. If not, then run an incremental
# backup.
if [ $date = 01 ]
then

 duplicity remove-older-than 2M -v5 ftp://user@host/srv >>/var/log/duplicity/srv.log
 duplicity remove-older-than 2M -v5 ftp://user@host/etc >>/var/log/duplicity/etc.log
 duplicity remove-older-than 2M -v5 ftp://user@host/home >>/var/log/duplicity/home.log
 duplicity remove-older-than 2M -v5 ftp://user@host/system >>/var/log/duplicity/system.log


 duplicity full -v5 /srv ftp://user@host/srv >>/var/log/duplicity/srv.log
 duplicity full -v5 /etc ftp://user@host/etc >>/var/log/duplicity/etc.log
 duplicity full -v5 /home ftp://user@host/home >>/var/log/duplicity/home.log
 duplicity full -v5 --exclude-filelist /etc/duplicityfilelist.conf / ftp://user@host/system >>/var/log/duplicity/system.log

else

 duplicity remove-older-than 2M -v5 ftp://user@host/srv >>/var/log/duplicity/srv.log
 duplicity remove-older-than 2M -v5 ftp://user@host/etc >>/var/log/duplicity/etc.log
 duplicity remove-older-than 2M -v5 ftp://user@host/home >>/var/log/duplicity/home.log
 duplicity remove-older-than 2M -v5 ftp://user@host/system >>/var/log/duplicity/system.log

 duplicity incremental -v5 /srv ftp://user@host/srv >>/var/log/duplicity/srv.log
 duplicity incremental -v5 /etc ftp://user@host/etc >>/var/log/duplicity/etc.log
 duplicity incremental -v5 /home ftp://user@host/home >>/var/log/duplicity/home.log
 duplicity incremental -v5 --exclude-filelist /etc/duplicityfilelist.conf / ftp://user@host/system >>/var/log/duplicity/system.log

fi
 # Check http://www.nongnu.org/duplicity/duplicity.1.html
 # for all the options available for Duplicity.
 # Unsetting the confidential variables so they are
 # gone for sure.
 unset PASSPHRASE
 unset FTP_PASSWORD

 exit 0

Dateien oder Verzeichnisse, die nicht gesichert werden sollen, werden in der Datei /etc/duplicityfilelist.conf eingetragen, die im Skript per exclude-filelist an duplicity übergeben wird. Diese könnte z.B. folgenden Inhalt haben:

- /dev
- /proc
- /sys
- /tmp
- /etc
- /home
- /srv
- /var/cache

Für eine regelmäßig Ausführung wird ein Cronjob benötigt. Dazu kann das Skript entweder unter /etc/cron.daily (täglich), /etc/cron.weekly (wöchentlich) oder /etc/cron.monthly (monatlich) abgelegt werden. Für eine genaue Einstellung des Zeitpunkts kann auch eine Crontab verwendet werden. Hierfür wird eine Datei unter /etc/cron.d/ erstellt:

# /etc/cron.d/duplicity
0 0 * * * root /usr/sbin/duplicity.sh >/dev/null 2>&1


Ursprüngliche Version von sethx im Hetznerforum veröffentlicht.



© 2020. Hetzner Online GmbH. Alle Rechte vorbehalten.