Backupsystem

Backups werden von Jeff.at automatisch täglich gemacht und stehen für die letzten 14 Tage zur Verfügung;

zusätzlich machen wir unser eigenes Backup; dazu wird die Datenbank gedumpt und das Filesystem über rsync auf den lokalen Rechner gespielt; zum Server htl.jeff.at wird eine ssh Vertrauensstellung eingerichtet, damit das backup über einen cron-Job automatisch laufen kann.



backup.sh Skript Tagessicherng

backup.weekly.sh Skript Wochensicherung



backup.0 die aktuelle Tagessicherung

backup.1 gestern

...

04-14-12-18-48.dump.sql.gz Datenbank Dump

backup.Apr-14-12.tar.gz Wochensicherung

...

exclude.files von der Sicherung ausgeschlossen

Tagessicherung

Die Daten werden nicht gepackt, sondern über Hard-Links kopiert; dadurch steigt die zusätzliche Datenmenge für die Tages-Backups nur gering an und die Dateien sind sofort verfügbar; das Kopieren erfolgt über rsync und geht damit sehr schnell



#!/bin/bash 
NOW=$(date +"%m-%d-%y-%H-%M") 
backupdir="/mnt/backup/jeff" 
lockfile="cron.backup-dump" 
flock -w 0 $lockfile rsync   --log-file=$backupdir/$NOW-dump.log  --verbose  --progress -e "ssh -p 222" -avx xxx@htl.jeff.at:/usr/home/htlmoed/dump.sql.gz "$backupdir/$NOW.dump.sql.gz“
mv $backupdir/backup.8 $backupdir/backup.tmp 
mv $backupdir/backup.7 $backupdir/backup.8 
mv $backupdir/backup.6 $backupdir/backup.7 
mv $backupdir/backup.5 $backupdir/backup.6 
mv $backupdir/backup.4 $backupdir/backup.5 
mv $backupdir/backup.3 $backupdir/backup.4 
mv $backupdir/backup.2 $backupdir/backup.3 
mv $backupdir/backup.1 $backupdir/backup.2 
mv $backupdir/backup.0 $backupdir/backup.1 
mv $backupdir/backup.tmp $backupdir/backup.0 
#create hard-links
cp -al $backupdir/backup.1/. $backupdir/backup.0 
rsync --delete --log-file=$backupdir/$NOW.log  --exclude-from 'exclude.files' --progress  -e "ssh -p 222" -avx xxx@htl.jeff.at:/usr/home/xxx/public_html/  $backupdir/backup.0/ 

Wochensicherung

Die Wochensicherung sichert die aktuelle Tagessicherung in komprimierter Form ab.

 #!/bin/bash 
NOW=$(date +"%b-%d-%y") 
backupdir="." 

tar -zcf $backupdir/backup.$NOW.tar.gz  $backupdir/backup.0 





Anacron

Die Jobs werden täglich, wöchentlich und monatlich ausgeführt.

Run Anacron as a user from user directory



mkdir $HOME/.anacron
mkdir $HOME/.anacron/cron.daily
mkdir $HOME/.anacron/cron.weekly
mkdir $HOME/.anacron/timestamps

$HOME/.anacron/anacrontab:

># See anacron(8) and anacrontab(5) for details.
>SHELL=/bin/sh
>PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
># These replace cron's entries
> 5 user.daily nice run-parts --report $HOME/.anacron/cron.daily
> 10 user.weekly nice run-parts --report >$HOME/.anacron/cron.weekly># eof



$HOME/.profile:

/usr/sbin/anacron -t ${HOME}/.anacron/anacrontab -S ${HOME}/.anacron/timestamps &> ${HOME}/.anacron/anacron.log



/etc/cron.daily/user-anacron :

#!/bin/bash
HOME="/home/USERNAME"
su USERNAME -c "/usr/sbin/anacron -t ${HOME}/.anacron/anacrontab -S ${HOME}/.anacron/timestamps &> ${HOME}/.anacron/anacron.log"