]>
git.wh0rd.org - dump.git/blob - examples/cron_dump_to_disk/backup
43818c3a670a19b9c4521b2a3db3bcaee9d291f8
3 # This script will make a simple backup of the most critical partitions,
4 # using the "dump" facility, into the backup partition.
6 # Run the following to make a complete backup:
8 # $ su -c "backup full"
10 # Run the following to make an incremental backup:
12 # $ su -c "backup inc"
14 # Add "nodumpdate" to run a backup but not effect the backup state
15 # recorded in the file /var/lib/dumpdates and reported by dump -W:
17 # $ su -c "backup full nodumpdate"
20 if [ "$2" = "nodumpdate" ]; then
26 if [ "$1" = "full" ]; then
30 elif [ "$1" = "inc" ]; then
35 echo "Usage: $0 full|inc [nodumpdate]"
41 # Configuration Parameters
44 BACKUPPART
=${BACKUPPART:-"/backup"}
45 BACKUPDIR
=${BACKUPDIR:-"current"}
46 DUMPLOGARCH
="$BACKUPPART/backup.dump.log.gz"
47 FSTODUMP
=${FSTODUMP:-/ /var /home /mnt/hdb1 /usr}
49 DUMPFILESOWN
="root.root"
56 echo "#####################################################################"
57 echo "Starting ${BACKUP} backup."
58 echo "#####################################################################"
66 echo "### ${BACKUP} System Dump Backup ###"
67 echo "Using backup partition: $BACKUPPART"
68 echo "Filesystems to dump: $FSTODUMP"
70 echo -n "Remounting backup partition read-write ... "
71 if ( mount
$BACKUPPART -o remount
,rw
&> /dev
/null
) then
73 elif ( mount
$BACKUPPART -o rw
&> /dev
/null
) then
77 echo " There were problems remounting $BACKUPPART in read-write mode!"
78 echo "Aborting ${BACKUP} System Dump Backup."
80 echo "-------------------------------------------------------------------------------"
84 echo -n "Checking backup partition for correct dir structure ... "
85 if [ -d $BACKUPPART/$BACKUPDIR -a -w $BACKUPPART/$BACKUPDIR ]; then
88 echo -n "Checking backup partition for available space ... "
89 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}'`
90 SAVAILFREE
=`df --block-size=1048576 | grep -Fe $BACKUPPART | awk '{printf "%6.0f\n", $4}'`
91 SAVAILDEL
=`du -s --block-size=1048576 $BACKUPPART/$BACKUPDIR/. | awk '{printf "%6.0f\n", $1}'`
92 SAVAIL
=`expr $SAVAILFREE + $SAVAILDEL`
94 if [ `expr $SAVAIL - $SREQ` -gt "0" ]; then
96 echo "Available: $SAVAIL MB Required: $SREQ MB."
98 echo "not enough space!"
99 echo "There is not enough space left in $BACKUPPART for the backup!"
100 echo "Available: $SAVAIL MB Required: $SREQ MB."
101 echo -n "Remounting backup partition read-only ... "
102 if ( mount
$BACKUPPART -o remount
,ro
&> /dev
/null
) then
104 elif ( mount
$BACKUPPART -o ro
&> /dev
/null
) then
108 echo "There were problems remounting $BACKUPPART in read-only mode!"
109 echo "Aborting ${BACKUP} System Dump Backup."
111 echo "-------------------------------------------------------------------------------"
114 echo "Aborting ${BACKUP} System Dump Backup."
116 echo "-------------------------------------------------------------------------------"
120 echo -n "Deleting old files ... "
121 if [ `ls -la $BACKUPPART/$BACKUPDIR/ | wc -l` -gt "3" ]; then
122 rm -f $BACKUPPART/$BACKUPDIR/* &> /dev
/null
125 echo "no old files to delete."
128 echo "Dumping filesystems ... "
131 if [ "$FS" = "/" ]; then
134 FSNAME
=`echo $FS | tr / _ | cut -b 2-`
137 TODAY
="`date +%a%Y%m%d`"
138 echo -n "Starting dump of $FSNAME ( $FS ) ... "
139 if ( dump
-$DLEVEL $UPDATEDDATE -z -M -s 27306 -f $BACKUPPART/$BACKUPDIR/$FSNAME.
$BTYPE.
-Q $BACKUPPART/$BACKUPDIR/$FSNAME.
$BTYPE.qfa
-L ${TODAY}file $FS &> $BACKUPPART/$BACKUPDIR/$FSNAME.log
) then
143 echo "There were problems with the dump of $FSNAME ( $FS )."
144 echo "Check log file at $BACKUPPART/$BACKUPDIR/$FSNAME.log.gz"
145 echo "Also check log archive file $DUMPLOGARCH."
148 echo -n "Verifying dump of $FSNAME ( $FS ) ... "
149 echo "-------------------------------------------------------------------------------" >> $BACKUPPART/$BACKUPDIR/$FSNAME.log
150 echo "Result of dump for $FSNAME ( $FS ):" >> $BACKUPPART/$BACKUPDIR/$FSNAME.log
151 if ( restore
-C -M -f $BACKUPPART/$BACKUPDIR/$FSNAME.
$BTYPE.
>> $BACKUPPART/$BACKUPDIR/$FSNAME.log
2>&1 ) then
155 echo "There were problems verifying the dump of $FSNAME ( $FS )."
156 echo "Check log file $BACKUPPART/$BACKUPDIR/$FSNAME.log.gz for more info"
158 cat $BACKUPPART/$BACKUPDIR/$FSNAME.log |
gzip >> $DUMPLOGARCH
159 echo "-------------------------------------------------------------------------------" |
gzip >> $DUMPLOGARCH
162 echo -n "Setting ownership and permissions of dump files ... "
163 chmod $DUMPFILESMODE $BACKUPPART/$BACKUPDIR/* $DUMPLOGARCH &> /dev
/null
164 chown
$DUMPFILESOWN $BACKUPPART/$BACKUPDIR/* $DUMPLOGARCH &> /dev
/null
167 echo -n "Compressing dump log files ... "
168 gzip $BACKUPPART/$BACKUPDIR/*.log
&> /dev
/null
174 echo "There are problems with the directory structure."
175 echo "Check directory: $BACKUPPART/$BACKUPDIR"
176 echo -n "Remounting backup partition read-only ... "
177 if ( mount
$BACKUPPART -o remount
,ro
&> /dev
/null
) then
181 echo "There were problems remounting $BACKUPPART in read-only mode!"
182 echo "Aborting ${BACKUP} System Dump Backup."
184 echo "-------------------------------------------------------------------------------"
187 echo "Aborting ${BACKUP} System Dump Backup."
189 echo "-------------------------------------------------------------------------------"
193 echo -n "Remounting backup partition read-only ... "
194 if ( mount
$BACKUPPART -o remount
,ro
&> /dev
/null
) then
198 echo "There were problems remounting $BACKUPPART in read-only mode!"
199 echo "Aborting ${BACKUP} System Dump Backup."
201 echo "-------------------------------------------------------------------------------"
205 echo "### End of ${BACKUP} System Dump Backup ###"
207 echo "-------------------------------------------------------------------------------"