1 |
Woll, ich verwende hierfür "dar" und "openvpn". Auf "openvpn" möchte ich |
2 |
an dieser Stelle nicht eingehen, dafür gibt es z.B. |
3 |
http://de.gentoo-wiki.com/Openvpn . |
4 |
|
5 |
Das folgende Skript ist ein "fire & forget"-Skript; weder dokumentiert, |
6 |
noch wirklich zu Ende gebracht. So fehlt z.B. eine Fehlerbehandlung. |
7 |
Dafür ist es handlich, erklärt sich fast von selbst ;) , verpackt alles |
8 |
in DVD-handliche 2GB-Häppchen und wenn man es richtig steuert, bekommt |
9 |
man ein prima "Master-Backup" samt differentiellen Sicherungen zzgl. |
10 |
Info-Mail. |
11 |
|
12 |
Für Fragen, Ideen und Verbesserungsvorschläge stehe ich gerne zur |
13 |
Verfügung... :) |
14 |
|
15 |
- |
16 |
Oliver |
17 |
|
18 |
------------------------------------------------------------------------ |
19 |
SCHNIPP |
20 |
------------------------------------------------------------------------ |
21 |
|
22 |
#!/bin/sh |
23 |
source /etc/profile |
24 |
|
25 |
# see also: |
26 |
http://dar.linux.free.fr/doc/mini-howto/dar-differential-backup-mini-howto.en.html |
27 |
|
28 |
# required: |
29 |
# |
30 |
# app-backup/dar |
31 |
# net-mail/email |
32 |
|
33 |
TYP=${1} |
34 |
MOUNT="/mnt/backup" |
35 |
DST="${MOUNT}/${HOSTNAME}" |
36 |
FULLNAM="full-backup-mails" |
37 |
DIFFNAM="diff-backup-mails-`date +%w`" |
38 |
DATUM=`date +%x` |
39 |
TIMESTART=`date +%s` |
40 |
|
41 |
function MOUNT { |
42 |
mount /boot |
43 |
mount -t nfs 192.168.100.5:/shares/backup ${MOUNT} -o |
44 |
rsize=65535,wsize=65535 |
45 |
if ! test -a ${DST}; then mkdir ${DST}; fi |
46 |
} |
47 |
|
48 |
function UMOUNT { |
49 |
umount ${MOUNT} /boot |
50 |
} |
51 |
|
52 |
function MAIL { |
53 |
tail -n 14 ${1} > /tmp/log.txt |
54 |
TIMESTOP=`date +%s` |
55 |
DURATION=$(( $((TIMESTOP-TIMESTART)) /60 )) |
56 |
echo >> /tmp/log.txt |
57 |
echo Dauer des Backups: ${DURATION} Minuten.>> /tmp/log.txt |
58 |
email -q -b \ |
59 |
-r 192.168.100.2 \ |
60 |
-n Mailserver \ |
61 |
-f mailserver@××××××××××××××.de \ |
62 |
-s "Status des ${TYP}-Backups vom ${DATUM}" \ |
63 |
empfaenger@××××××××××××××.de \ |
64 |
-bcc empfaenger2@×××××××××××××××.de \ |
65 |
< /tmp/log.txt |
66 |
cp /tmp/log.txt ${MOUNT}/log/${HOSTNAME}-${DATUM}.log |
67 |
rm ${1} /tmp/log.txt |
68 |
} |
69 |
|
70 |
DAR="dar \ |
71 |
-v |
72 |
-m 256 \ |
73 |
-y \ |
74 |
-s 2040M \ |
75 |
-D \ |
76 |
-R / \ |
77 |
-Z \"*.bz2\" -Z \"*.zip\" -Z \"*.png\" -Z \"*.iso\" \ |
78 |
-P vmware |
79 |
" |
80 |
|
81 |
FULL="${DAR} \ |
82 |
-c ${DST}/${FULLNAM} |
83 |
" |
84 |
|
85 |
DIFF="${DAR} \ |
86 |
-c ${DST}/${DIFFNAM} \ |
87 |
-A ${DST}/${FULLNAM} |
88 |
" |
89 |
|
90 |
if [ "${TYP}" = "" ] || [ "${TYP}" = "-h" ]; then |
91 |
echo "Specify \"full\" for full backup or \"diff\" for differential |
92 |
backup. Easy, huh?" |
93 |
echo |
94 |
exit |
95 |
fi |
96 |
if [ "${TYP}" = "full" ]; then |
97 |
MOUNT |
98 |
if ! test -a ${DST}/old; then mkdir ${DST}/old; fi |
99 |
rm -f ${DST}/old/* |
100 |
mv -f ${DST}/????-backup-mails* ${DST}/old/ |
101 |
${FULL} > /tmp/${FULLNAM}-log.txt |
102 |
MAIL /tmp/${FULLNAM}-log.txt |
103 |
UMOUNT |
104 |
fi |
105 |
if [ "${TYP}" = "diff" ]; then |
106 |
MOUNT |
107 |
${DIFF} > /tmp/${DIFFNAM}-log.txt |
108 |
MAIL /tmp/${DIFFNAM}-log.txt |
109 |
UMOUNT |
110 |
fi |
111 |
|
112 |
-- |
113 |
gentoo-user-de@g.o mailing list |