]> git.wh0rd.org - dump.git/blame - examples/cron_dump_to_disk/backup
Cleanup output of cron_dump_to_disk example.
[dump.git] / examples / cron_dump_to_disk / backup
CommitLineData
1733496b
SP
1#!/bin/bash
2#
3# This script will make a simple backup of the most critical partitions,
4# using the "dump" facility, into the backup partition. It will stop the
5# webserver, and recurse the sites directories making a tar mini-backup of
6# the database dirs. It will the restart the webserver, and start the
7# "dump" backup.
8#
9
10if [ "$2" = "nodumpdate" ]; then
11 UPDATEDDATE=""
12else
13 UPDATEDDATE="-u"
14fi
15
16if [ "$1" = "full" ]; then
17 DLEVEL="0"
18 BTYPE="full"
19elif [ "$1" = "inc" ]; then
20 DLEVEL="1"
21 BTYPE="inc"
22else
23 echo "Usage: $0 full|inc [nodumpdate]"
24 exit 1
25fi
26
27
28#
29# Configuration Parameters
30#
31
32BACKUPPART="/backup"
33BACKUPDIR="current"
34DUMPLOGARCH="$BACKUPPART/backup.dump.log.gz"
35FSTODUMP="/ /var /home /mnt/hdb1 /usr"
36DUMPFILESMODE="0644"
37DUMPFILESOWN="root.root"
38
39#
40# Start
41#
42
43echo
44echo "#####################################################################"
45echo "Starting backup."
46echo "#####################################################################"
47echo
48
49
50#
51# Make full system backup
52#
53
a405c61d
SP
54echo "### Full System Dump Backup ###"
55echo "Using backup partition: $BACKUPPART"
56echo "Filesystems to dump: $FSTODUMP"
1733496b 57
a405c61d 58echo -n "Remounting backup partition read-write ... "
1733496b
SP
59if ( mount $BACKUPPART -o remount,rw &> /dev/null ) then
60 echo "done."
61else
62 echo "failure!"
a405c61d
SP
63 echo " There were problems remounting $BACKUPPART in read-write mode!"
64 echo "Aborting Full System Dump Backup."
65 echo "Aborted, done."
1733496b
SP
66 echo "-------------------------------------------------------------------------------"
67 exit 1
68fi
69
a405c61d 70echo -n "Checking backup partition for correct dir structure ... "
1733496b
SP
71if [ -d $BACKUPPART/$BACKUPDIR -a -w $BACKUPPART/$BACKUPDIR ]; then
72 echo "done."
73
a405c61d 74 echo -n "Checking backup partition for available space ... "
1733496b
SP
75 SREQ=`for i in $FSTODUMP;do dump -$DLEVEL -S $i 2> /dev/null;done|awk '{x=x+$1/1048576} END {printf "%6.0f\n", x}'`
76 SAVAILFREE=`df --block-size=1048576 |grep -Ew $BACKUPPART|awk '{printf "%6.0f\n", $4}'`
77 SAVAILDEL=`du -s --block-size=1048576 $BACKUPPART/$BACKUPDIR/. |awk '{printf "%6.0f\n", $1}'`
78 SAVAIL=`expr $SAVAILFREE + $SAVAILDEL`
79
80 if [ `expr $SAVAIL - $SREQ` -gt "0" ]; then
81 echo "done."
a405c61d 82 echo " Available: $SAVAIL MB Required: $SREQ MB."
1733496b
SP
83 else
84 echo "no enough space!"
a405c61d
SP
85 echo " There is not enough space left in $BACKUPPART for the backup!"
86 echo " Available: $SAVAIL MB Required: $SREQ MB."
87 echo -n "Remounting backup partition read-only ... "
1733496b
SP
88 if ( mount $BACKUPPART -o remount,ro &> /dev/null ) then
89 echo "done."
90 else
91 echo "failure!"
a405c61d
SP
92 echo " There were problems remounting $BACKUPPART in read-only mode!"
93 echo "Aborting Full System Dump Backup."
94 echo "Aborted, done."
1733496b
SP
95 echo "-------------------------------------------------------------------------------"
96 exit 1
97 fi
a405c61d
SP
98 echo "Aborting Full System Dump Backup."
99 echo "Aborted, done."
1733496b
SP
100 echo "-------------------------------------------------------------------------------"
101 exit 1
102 fi
103
a405c61d 104 echo -n "Deleting old files ... "
1733496b
SP
105 if [ `ls -la $BACKUPPART/$BACKUPDIR/|wc -l` -gt "3" ]; then
106 rm -f $BACKUPPART/$BACKUPDIR/* &> /dev/null
107 echo "done."
108 else
109 echo "no old files to delete."
110 fi
111
a405c61d 112 echo "Dumping filesystems ... "
1733496b
SP
113 for FS in $FSTODUMP
114 do
115 if [ "$FS" = "/" ]; then
116 FSNAME="root"
117 else
118 FSNAME=`echo $FS|tr / _|cut -b 2-`
119 fi
120 sync
a405c61d 121 echo -n " Starting dump of $FSNAME ( $FS ) ... "
1733496b
SP
122 if ( dump -$DLEVEL $UPDATEDDATE -z -M -s 27306 -f $BACKUPPART/$BACKUPDIR/$FSNAME.$BTYPE. $FS &> $BACKUPPART/$BACKUPDIR/$FSNAME.log ) then
123 echo "done."
124 else
125 echo "problems!"
a405c61d
SP
126 echo " There where problems with the dump of $FSNAME ( $FS )."
127 echo " Check logfile $BACKUPPART/$BACKUPDIR/$FSNAME.log for more info"
128 echo " Also check log archive file $DUMPLOGARCH."
1733496b
SP
129 fi
130 cat $BACKUPPART/$BACKUPDIR/$FSNAME.log |gzip >> $DUMPLOGARCH
131 echo "-------------------------------------------------------------------------------" |gzip >> $DUMPLOGARCH
132 done
133
a405c61d 134 echo -n "Setting ownership and permissions of dump files ... "
1733496b
SP
135 chmod $DUMPFILESMODE $BACKUPPART/$BACKUPDIR/* $DUMPLOGARCH &> /dev/null
136 chown $DUMPFILESOWN $BACKUPPART/$BACKUPDIR/* $DUMPLOGARCH &> /dev/null
137 echo "done."
138
a405c61d 139 echo -n "Compressing dump log files ... "
1733496b
SP
140 gzip $BACKUPPART/$BACKUPDIR/*.log &> /dev/null
141 echo "done."
142 sync
143
144else
145 echo "problems!"
a405c61d
SP
146 echo " There are problems with the directory structure."
147 echo " Check dirs: $BACKUPPART/$BACKUPDIR"
148 echo -n "Remounting backup partition read-only ... "
1733496b
SP
149 if ( mount $BACKUPPART -o remount,ro &> /dev/null ) then
150 echo "done."
151 else
152 echo "failure!"
a405c61d
SP
153 echo " There were problems remounting $BACKUPPART in read-only mode!"
154 echo "Aborting Full System Dump Backup."
155 echo "Aborted, done."
1733496b
SP
156 echo "-------------------------------------------------------------------------------"
157 exit 1
158 fi
a405c61d
SP
159 echo "Aborting Full System Dump Backup."
160 echo "Aborted, done."
1733496b
SP
161 echo "-------------------------------------------------------------------------------"
162 exit 1
163fi
164
a405c61d 165echo -n "Remounting backup partition read-only ... "
1733496b
SP
166if ( mount $BACKUPPART -o remount,ro &> /dev/null ) then
167 echo "done."
168else
169 echo "failure!"
a405c61d
SP
170 echo " There were problems remounting $BACKUPPART in read-only mode!"
171 echo "Aborting Full System Dump Backup."
172 echo "Aborted, done."
1733496b
SP
173 echo "-------------------------------------------------------------------------------"
174 exit 1
175fi
176
a405c61d
SP
177echo "End of Full System Dump Backup."
178echo "Done."
1733496b 179echo "-------------------------------------------------------------------------------"