Server-backup mit duplicity auf Amazon S3

Das Backup für PCs und Laptops macht Backuppc sehr fein, aber für die Root-Server braucht es eine andere Lösung.

Duplicity macht gpg-verschlüsselte Backups und unterstützt die unterschiedlichsten Endpunkte wie ftp, rsync, scp, ssh, webdav[s] und auch Amazon S3. Hier mein Mini-Bash-Skript mit dem ich meine Server dorthin sichere:

#!/bin/bash

BDIRS="/etc /home /"
LOGDIR='/var/log/duplicity'
BAC="s3+http://ihr_bucket_name.s3.amazonaws.com"
# symmetrische verschluesselung fuer gpg
export PASSPHRASE='einelangeschwierigepassphrase'
export AWS_SECRET_ACCESS_KEY="amazon_aws_secret_access_key"
export AWS_ACCESS_KEY_ID="amazon_aws_access_key"
##### end of config ##########

BCLIENT=$(hostname);
for FULL_DIR in $BDIRS
do
  DIR=$(basename $FULL_DIR)
  if [ $DIR == "/" ]
  then
    DIR="root"
  fi
  EXCLUDELIST="/usr/local/etc/duplicity-exclude-$DIR.conf"
  if [ -f $EXCLUDELIST ]; then
    EXCLUDE="--exclude-filelist $EXCLUDELIST"
  else
    EXCLUDE=''
  fi
  duplicity remove-older-than 60D -v3 --force $BAC/$BCLIENT_$DIR >> $LOGDIR/$DIR.log
  duplicity --full-if-older-than 30D -v3 $EXCLUDE $FULL_DIR $BAC/$BCLIENT-$DIR 
    >> $LOGDIR/$DIR.log
done

export PASSPHRASE=""
export AWS_SECRET_ACCESS_KEY=""
export AWS_ACCESS_KEY_ID=""

exit 0
[Weiterlesen]
    

E-Mails von /var/mail nach ~/Maildir

Eigentlich speichere ich meine E-Mails in $HOME/Maildir im Maildir Format. Durch eine Fehlkonfiguration im MTA kann es aber passieren, dass die E-Mails in /var/mail/<username> landen. Um diesen Fehler für alle Benutzer am System nachträglich zu korrigieren reicht der Einzeiler:

for i in /var/mail/* ; do formail -s procmail -d ${i##*/} < $i ; done

Dazu muss natürlich das procmail Paket installiert sein und die entsprechenden procmail-Regeln entweder im Benutzerverzeichnis als ~/.procmailrc oder in /etc/procmailrc liegen. Hier ein Beispiel:

[Weiterlesen]

Server-Migration

Es hat sich so ergeben, dass ich circa alle zwei Jahre meine Server auf neue Hardware verlege. Bei den gemieteten root-servern kommen dabei immer neue IP-Adressen ins Spiel. Da das Update der DNS-Einträge ein wenig zeitversetzt geschieht und das den Zeitpunkt der Umstellung nicht ganz genau planen lässt, ist es günstig alle Anfragen von der alten IP-Adresse auf die neue umzuleiten. Mit iptables ist das sehr einfach, hier das Skript, das nicht nur Webanfragen, sondern auch Mailserver (SMTP und IMAP/POP) umleitet. Das Skript muss am alten Server ausgeführt werden, wobei 10.0.0.1 hier die IP-Adresse des neuen Servers ist.

[Weiterlesen]

Alte Logfiles in Awstats einspielen (Ubuntu)

Ubuntu legt die Apache Logfiles als gzippte Dateien in /var/log/apache2 ab. Um von alten Logdateien nachträglich eine Statistik zu erstellen kann folgendes Kommando nützlich sein:

for i in `ls -tr /var/log/apache2/ssl_meinhost.com*access*gz` ;
do  
  gunzip -c $i &gt; /tmp/ssl_log.txt; /usr/lib/cgi-bin/awstats.pl
    -config=ssl.meinhost.com -LogFile=/tmp/ssl_log.txt ;
done
[Weiterlesen]
    

Backuppc zum Sichern von Desktops

Dazu gibt es schon viele Anleitungen, aber ein Problem bei meinem Linux-Desktop ließ mich nicht los:

Remote[1]: rsync: readlink_stat("/home/bernd/.gvfs") failed: Permission denied (13)

Der dritte Eintrag im Thread http://ubuntuforums.org/showthread.php?t=767311 half schließlich: Mit --one-file-system wird rsync angewiesen, das gemountete fuse-Filesystem unter ~/.gvfs nicht zu sichern.

Die entsprechende Config-Zeile in /etc/backuppc/hostname.pl sieht dann bei mir folgendermaßen aus:

$Conf{RsyncClientCmd} = '$sshPath -q -x -l backuppc --one-file-system $host sudo $rsyncPath $argList+';
$Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l backuppc $host sudo $rsyncPath $argList+';
$Conf{RsyncArgsExtra} = [
  '--one-file-system'
];
[Weiterlesen]