Benutzer-Werkzeuge

Webseiten-Werkzeuge


server:ftplicity

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
server:ftplicity [2010/02/13 22:15]
ewald Kleine Einleitung hinzugefügt
server:ftplicity [2011/11/09 17:52] (aktuell)
ewald Option --single-transaction beim mysqldump-Aufruf
Zeile 1: Zeile 1:
 ====== Verschlüsseltes Backup mit ftplicity ====== ====== Verschlüsseltes Backup mit ftplicity ======
  
-''​ftplicity''​ ist ein Wrapper-Skript um ''​duplicity'',​ das vollständige und inkrementelle Backups ​erzeugen kann, die per GPG verschlüsselt werden.+''​ftplicity''​ ist ein Wrapper-Skript um ''​duplicity'',​ das inkrementelle Backups ​durchführt, die per GPG verschlüsselt werden
 + 
 +Das Backup wird per ''​scp''​ auf den Hidrive-Plattenplatz kopiert.
  
 ===== Quellen ===== ===== Quellen =====
Zeile 14: Zeile 16:
   # aptitude install duplicity   # aptitude install duplicity
  
-  * [[ftp://​ftp.heise.de/​pub/​ct/​listings/​0613-216.tar.gz|ftplicity]] laden, entpacken und ''​ftplicity''​ nach ''/​usr/​local/​bin''​ kopieren+  * [[ftp://​ftp.heise.de/​pub/​ct/​listings/​0613-216.tar.gz|ftplicity]] laden, entpacken und ''​ftplicity''​ nach ''/​usr/​local/​sbin''​ kopieren
  
   * ''​ftplicity''​ legt beim ersten Aufruf nicht das Konfigurationsverzeichnis ''/​root/​.ftplicity''​ an, deshalb vor dem Aufruf von ''​save_config''​ folgende Zeile einfügen:   * ''​ftplicity''​ legt beim ersten Aufruf nicht das Konfigurationsverzeichnis ''/​root/​.ftplicity''​ an, deshalb vor dem Aufruf von ''​save_config''​ folgende Zeile einfügen:
  
-  # vi /usr/local/bin/ftplicity+  # vi /usr/local/sbin/ftplicity
   [...]   [...]
   if [ ! -d "​$CONFDIR"​ ]   if [ ! -d "​$CONFDIR"​ ]
Zeile 24: Zeile 26:
     mkdir "​$CONFDIR"​ || error "​Konnte $CONFDIR nicht erstellen."​     mkdir "​$CONFDIR"​ || error "​Konnte $CONFDIR nicht erstellen."​
     save_config     save_config
 +
 +  * Damit bei Verwendung von ''​scp''​ das Kennwort aus der Umgebungsvariablen ''​FTP_PASSWORD''​ zur Authentifizierung dient (und nicht, wie es eigentlich besser wäre, ein SSH-Key), muss beim Aufruf von ''​duplicity''​ noch die Option ''​--ssh-askpass''​ hinzugefügt werden:
 +
 +  # vi /​usr/​local/​sbin/​ftplicity
 +  [...]
 +          $DUPLICITY $cmd "​$@"​ --encrypt-key $GPG_KEY \
 +             ​--sign-key $GPG_KEY --verbosity $VERBOSITY \
 +             ​--ssh-askpass
  
 ===== GPG ===== ===== GPG =====
Zeile 44: Zeile 54:
   GPG_PW='​...'​   GPG_PW='​...'​
   [...]   [...]
-  TARGET='​file:///private-backup/backup/tiger.disorganized.de/'​ +  TARGET='​scp://username@scp.hidrive.strato.com//​users/​username/backup/xxx.disorganized.de/'​ 
-  TARGET_PW='​x'+  TARGET_PW='​...'
   [...]   [...]
   MAXIMUM_AGE=1M   MAXIMUM_AGE=1M
  
   * Folgende Dateien steuern den Ablauf von ''​ftplicity'';​   * Folgende Dateien steuern den Ablauf von ''​ftplicity'';​
-    * /​root/​.ftplicity/​exclude:​ Liste von Verzeichnissen und Dateimustern,​ die nicht gesichert werden sollen (rsync-Syntax) +    * ''​/​root/​.ftplicity/​exclude''​: Liste von Verzeichnissen und Dateimustern,​ die nicht gesichert werden sollen (rsync-Syntax) 
-    * /​root/​.ftplicity/​pre:​ Kommandos, die vor dem Backup ausgeführt werden sollen +    * ''​/​root/​.ftplicity/​pre''​: Kommandos, die vor dem Backup ausgeführt werden sollen 
-    * /​root/​.ftplicity/​post:​ Kommandos, die nach dem Backup ausgeführt werden sollen+    * ''​/​root/​.ftplicity/​post''​: Kommandos, die nach dem Backup ausgeführt werden sollen
  
   * Exclude-Datei anlegen (nur nicht wieder herstellbare Dateien sichern, nicht das ganze Betriebssystem):​   * Exclude-Datei anlegen (nur nicht wieder herstellbare Dateien sichern, nicht das ganze Betriebssystem):​
Zeile 82: Zeile 92:
   /var/run   /var/run
   /var/tmp   /var/tmp
- 
-  * Ziel-Verzeichnis anlegen: 
- 
-  # mkdir -p /​private-backup/​backup/​tiger.disorganized.de 
-  # chmod -R 700 /​private-backup/​backup 
  
 ===== Erste Sicherung und Test ===== ===== Erste Sicherung und Test =====
Zeile 108: Zeile 113:
   ​   ​
   # Inkrementelles Backup um 5 Uhr morgens   # Inkrementelles Backup um 5 Uhr morgens
-  00 5 * * * /usr/local/bin/ftplicity backup+  00 5 * * * /usr/local/sbin/ftplicity backup
   ​   ​
   # Vollbackup um 6 Uhr morgens an jedem ersten des Monats,   # Vollbackup um 6 Uhr morgens an jedem ersten des Monats,
   # veraltete Ketten loeschen   # veraltete Ketten loeschen
   # Kommandos sollten eigentlich mit && verkettet werden!   # Kommandos sollten eigentlich mit && verkettet werden!
-  00 6 1 * * /usr/local/bin/ftplicity full ; /usr/local/bin/ftplicity purge --force+  00 6 1 * * /usr/local/sbin/ftplicity full ; /usr/local/sbin/ftplicity purge --force 
 + 
 +===== MySQL-Backup ===== 
 + 
 +Das MySQL-Backup wird von ''​ftplicity''​ per ''​pre''​-Kommando durchgeführt. Dabei werden mit ''​mysqldump''​ Dumps aller Datenbanken angelegt. 
 + 
 +  * MySQL-Backup-Benutzer anlegen: 
 + 
 +  $ mysql -u root -p 
 +  GRANT SHOW DATABASES, SHOW VIEW, SELECT, LOCK TABLES, RELOAD ON *.* to '​backup'​@'​localhost'​ IDENTIFIED BY '​password';​ 
 +  FLUSH PRIVILEGES;​ 
 + 
 +  * MySQL-Backup-Verzeichnis anlegen: 
 + 
 +  # mkdir /​var/​backups/​mysql 
 +  # chown root:root /​var/​backups/​mysql 
 +  # chmod 750 /​var/​backups/​mysql 
 + 
 +  * MySQL-Backup-Skript anlegen: 
 + 
 +  # vi /​usr/​local/​sbin/​mysqlbackup 
 +  #​!/​bin/​bash 
 +   
 +  set -e 
 +   
 +  DIR=/​var/​backups/​mysql/​ 
 +  DB_USER=backup 
 +  DB_PASS='​password'​ 
 +   
 +  OPT="​--opt --single-transaction --quote-names --routines --flush-logs --allow-keywords"​ 
 +   
 +  # create backups securely 
 +  umask 0027 
 +   
 +  # list MySQL databases and dump each 
 +  DB_LIST=`mysql -u $DB_USER -p"​$DB_PASS"​ -e'​show databases;'​` 
 +  DB_LIST=${DB_LIST##​Database} 
 +  for DB in $DB_LIST; 
 +  do 
 +    FILENAME=${DIR}${DB}.sql.bz2 
 +    mysqldump -u $DB_USER -p"​$DB_PASS"​ $OPT $DB | bzip2 > $FILENAME.tmp 
 +    mv $FILENAME.tmp $FILENAME 
 +  done 
 + 
 +  * Zugriffsrechte für MySQL-Backup-Skript setzen: 
 + 
 +  # chown root:root /​usr/​local/​sbin/​mysqlbackup 
 +  # chmod 700 /​usr/​local/​sbin/​mysqlbackup 
 + 
 +  * MySQL-Backup-Skript vor dem Backup ausführen:​ 
 + 
 +  # vi /​root/​.ftplicity/​pre 
 +  #​!/​bin/​bash 
 +   
 +  /​usr/​local/​sbin/​mysqlbackup 
 + 
 +  * Zugriffsrechte für ''​pre''​-Kommando setzen: 
 + 
 +  # chmod 700 /​root/​.ftplicity/​pre
  
 ===== Ausblick ===== ===== Ausblick =====
  
   * Nachfolge-Projekt:​ [[http://​duply.net/​|duply]]   * Nachfolge-Projekt:​ [[http://​duply.net/​|duply]]
server/ftplicity.1266095706.txt.gz · Zuletzt geändert: 2010/02/13 22:15 von ewald