-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbackup.sh
More file actions
executable file
·62 lines (50 loc) · 917 Bytes
/
backup.sh
File metadata and controls
executable file
·62 lines (50 loc) · 917 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# !/bin/bash
#
# Backup Script
#
# Global Vars
#
# Leave as `hostname` or menually set what you would like the files hostname to be set to
#
host=`hostname`
#
# Set the location of the secondary media mount point
#
location="/mnt/backup/"
#
# Set the retention policy in days
#
retire_after=7
#
# Get current date
#
bdate=`date +'%Y-%m-%d'`
#
# Set location of exclude list
#
exclude_list=$PWD/exclude_list
#Functions
retire(){
files=(${location}*)
rdate=`date -d -${retire_after}days +'%Y-%m-%d'`
valid="\*$"
if [[ ! ${files[0]} =~ $valid ]]
then
for item in ${files[*]}
do
fdate=`stat -c%y $item | cut -c1-10`
if [ $rdate == $fdate ]
then
`rm $item`
fi
done
fi
}
backup(){
`tar cpzf "$location$host"-system_backup-$bdate.tar.gz -X $exclude_list /`
}
#
# Main
#
retire
backup