/[dtapublic]/projs/trunk/projs/20161029_server_scripts_automaint_cron/backup_ashley_david_pers_incr_48hour
ViewVC logotype

Contents of /projs/trunk/projs/20161029_server_scripts_automaint_cron/backup_ashley_david_pers_incr_48hour

Parent Directory Parent Directory | Revision Log Revision Log


Revision 60 - (show annotations) (download)
Sat Oct 29 21:06:08 2016 UTC (7 years, 11 months ago) by dashley
File size: 4859 byte(s)
Line endings changed to Unix-style.
1 #!/bin/bash
2 #-------------------------------------------------------------------------------------------------
3 #$Header$
4 #-------------------------------------------------------------------------------------------------
5 #This file is part of "Server Scripts, Automatic Maintenance, Cron", a set of scripts for
6 #performing automatic periodic maintenance on a Linux server.
7 #-------------------------------------------------------------------------------------------------
8 #This source code and any program in which it is compiled/used is provided under the MIT License,
9 #reproduced below.
10 #-------------------------------------------------------------------------------------------------
11 #Permission is hereby granted, free of charge, to any person obtaining a copy of
12 #this software and associated documentation files(the "Software"), to deal in the
13 #Software without restriction, including without limitation the rights to use,
14 #copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the
15 #Software, and to permit persons to whom the Software is furnished to do so,
16 #subject to the following conditions :
17 #
18 #The above copyright notice and this permission notice shall be included in all
19 #copies or substantial portions of the Software.
20 #
21 #THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 #IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 #FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
24 #AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 #LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26 #OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27 #SOFTWARE.
28 #-------------------------------------------------------------------------------------------------
29 #Incremental daily backup of Dave Ashley's server content. The backup goes back 48 hours or changed files.
30 #
31 echo "Performing incremental daily backup of Dave Ashley's server content. List of directories"
32 echo "and files backed up appears below."
33 #
34 #Change to a safe working directory in case something goes wrong,
35 #especially a failed cd followed by a mass delete.
36 cd /root/cronjob_sandbox
37 #
38 #Make the necessary directory.
39 mkdir /hl/baks/ashley_david_personal_01/incr_daily/${1}${5}${6}_${10}${13}${14}
40 #
41 #Tar up the content. We use the "full_monthly" family of symlinks as well for the incrementals.
42 tar -c -N "2 days ago" -v -z -h -f /hl/baks/ashley_david_personal_01/incr_daily/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.tar.gz /hb/ashley_david_personal_01/full_monthly &>/hl/baks/ashley_david_personal_01/incr_daily/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.full.log.txt
43 #
44 #Filter the content to give only the filenames.
45 cat /hl/baks/ashley_david_personal_01/incr_daily/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.full.log.txt | grep -v ": file is unchanged; not dumped" | grep -v "tar: Option --after-date: Treating date" | grep -v "tar: Removing leading" | sed -e '/\/$/d' >/hl/baks/ashley_david_personal_01/incr_daily/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.filenamesonly.log.txt
46 #
47 #Announce what has been done.
48 echo "===== FILENAMES ONLY ====="
49 cat /hl/baks/ashley_david_personal_01/incr_daily/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.filenamesonly.log.txt
50 echo "===== ALL MESSAGES FROM TAR ====="
51 cat /hl/baks/ashley_david_personal_01/incr_daily/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.full.log.txt
52 #
53 #Change to a safe working directory in case something goes wrong,
54 #especially a failed cd followed by a mass delete.
55 cd /root/cronjob_sandbox
56 #
57 #We want to be really careful with this next section because of
58 #the recursive rm. Want to be sure the directory exists.
59 if [ -d /hl/baks/ashley_david_personal_01/incr_daily/${1}${5}${6}_${10}${13}${14} ] ; then
60 cd /hl/baks/ashley_david_personal_01/incr_daily/${1}${5}${6}_${10}${13}${14}
61 split -b 1000m ${1}${5}${6}_${10}${13}${14}.tar.gz
62 XFILES=`ls -1 x*`
63 for curfile in $XFILES
64 do
65 mv ${curfile} ${curfile}.bin
66 done
67 md5sum ${1}${5}${6}_${10}${13}${14}.* x* >md5sums.txt
68 sha512sum ${1}${5}${6}_${10}${13}${14}.* x* >sha512sums.txt
69 rm ${1}${5}${6}_${10}${13}${14}.tar.gz
70 #
71 #Emit the backup file MD5s to stdout so they go in the larger log.
72 echo "===== BACKUP FILE MD5 MESSAGE DIGESTS ====="
73 cat md5sums.txt
74 #
75 #Emit the backup file SHA512s to stdout so they go in the larger log.
76 echo "===== BACKUP FILE SHA512 MESSAGE DIGESTS ====="
77 cat sha512sums.txt
78 #
79 #Trim down to 60 days of incremental backups.
80 cd ..
81 rm -fR `ls -1t | sed -e '61,$!d'`
82 fi
83 #
84 #Change to a safe working directory in case something goes wrong,
85 #especially a failed cd followed by a mass delete.
86 cd /root/cronjob_sandbox
87 #
88 #End of script.

Properties

Name Value
svn:keywords Header

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25