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

Contents of /projs/trunk/projs/20161029_server_scripts_automaint_cron/backup_ashley_david_pers_full

Parent Directory Parent Directory | Revision Log Revision Log


Revision 61 - (show annotations) (download)
Sat Oct 29 21:07:43 2016 UTC (8 years ago) by dashley
File size: 5411 byte(s)
Unix execute permission enabled.
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 #Full monthly backup Dave Ashley's server content.
30 #
31 echo "Performing full backup of all Dave Ashley's server content."
32 #
33 #Change to a safe working directory in case something goes wrong,
34 #especially a failed cd followed by a mass delete.
35 cd /root/cronjob_sandbox
36 #
37 #Make the directory.
38 mkdir /hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14}
39 #
40 #Make MD5 message digests of everything we intend to tar up.
41 find -L /hb/ashley_david_personal_01/full_monthly -type f -exec md5sum '{}' \; &>/hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.files.md5sum.txt
42 #
43 #Make SHA512 message digests of everything we intend to tar up.
44 find -L /hb/ashley_david_personal_01/full_monthly -type f -exec sha512sum '{}' \; &>/hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.files.sha512sum.txt
45 #
46 #Tar up everything except for the backup symlinks themselves.
47 tar -c -v -z -h -f /hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.files.tar.gz /hb/ashley_david_personal_01/full_monthly &>/hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.files.log.txt
48 #
49 #Tar up the symlinks.
50 tar -c -v -z -f /hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.symlinks.tar.gz /hb/ashley_david_personal_01/full_monthly &>/hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.symlinks.log.txt
51 #
52 #Emit the file MD5s to stdout so they go in the larger log.
53 echo "===== FILE MD5 MESSAGE DIGESTS ====="
54 cat /hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.files.md5sum.txt
55 #
56 #Emit the file SHA512s to stdout so they go in the larger log.
57 echo "===== FILE SHA512 MESSAGE DIGESTS ====="
58 cat /hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.files.sha512sum.txt
59 #
60 #Emit the log files to stdout so they go in the larger log.
61 echo "===== FILES ====="
62 cat /hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.files.log.txt
63 #
64 echo "===== SYMLINKS ====="
65 cat /hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14}/${1}${5}${6}_${10}${13}${14}.symlinks.log.txt
66 #
67 #We want to be really careful with this next section because of
68 #the recursive rm. Want to be sure the directory exists.
69 if [ -d /hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14} ] ; then
70 cd /hl/baks/ashley_david_personal_01/full_monthly/${1}${5}${6}_${10}${13}${14}
71 split -b 1000m ${1}${5}${6}_${10}${13}${14}.files.tar.gz
72 XFILES=`ls -1 x*`
73 for curfile in $XFILES
74 do
75 mv ${curfile} ${curfile}.bin
76 done
77 md5sum ${1}${5}${6}_${10}${13}${14}.* x* >md5sums.txt
78 sha512sum ${1}${5}${6}_${10}${13}${14}.* x* >sha512sums.txt
79 rm ${1}${5}${6}_${10}${13}${14}.files.tar.gz
80 #
81 #Emit the backup file MD5s to stdout so they go in the larger log.
82 echo "===== BACKUP FILE MD5 MESSAGE DIGESTS ====="
83 cat md5sums.txt
84 #
85 #Emit the backup file SHA512s to stdout so they go in the larger log.
86 echo "===== BACKUP FILE SHA512 MESSAGE DIGESTS ====="
87 cat sha512sums.txt
88 #
89 cd ..
90 rm -fR `ls -1t | sed -e '2,$!d'`
91 fi
92 #
93 #Change to a safe working directory in case something goes wrong,
94 #especially a failed cd followed by a mass delete.
95 cd /root/cronjob_sandbox
96 #
97 #End of script.

Properties

Name Value
svn:executable *
svn:keywords Header

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25