-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbackup.sh
More file actions
executable file
·105 lines (63 loc) · 1.77 KB
/
backup.sh
File metadata and controls
executable file
·105 lines (63 loc) · 1.77 KB
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#/bin/bash
#author: Denis Oleshkevich
#check config file
if [ ! -f backup.cfg ];
then
echo "Config file 'backup.cfg' not found, create it from 'backup.cfg.sample'"
exit
fi
#loading config
source backup.cfg
YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`
DAYN=`date +%u`
WEEK=`date +%W`
BACKUP_SITES_DIR_TMP=$BACKUP_SITES$YEAR"_"$WEEK"/"
BACKUP_SITES_FULL=$BACKUP_SITES_DIR_TMP"00_full/"
BACKUP_SITES_INC=$BACKUP_SITES_DIR_TMP$MONTH"_"$DAY"/"
EXCLUDE_TAR=${EXLUDE_PATHS/:/ --exlude=}
echo "start backuping..."
date
df -h
if [ $DAYN == "1" ];
then
find $BACKUP_SITES -type d -mtime +$LIFETIME
# -exec rm -rf {} \;
fi
echo "start backup sites"
if [ $DAYN == "1" ];
then
test -d "$BACKUP_SITES_FULL" || mkdir -p "$BACKUP_SITES_FULL"
else
test -d "$BACKUP_SITES_INC" || mkdir -p "$BACKUP_SITES_INC"
fi
for site in `ls $SITES_DIR/ -1`
do
echo $site;
cd $SITES_DIR"/"$site
if [ $DAYN == "1" ];
then
tar -czf $BACKUP_SITES_FULL$site".tgz" . $EXCLUDE_TAR
else
find ./ -mtime -1 -type f -print | tar -czf $BACKUP_SITES_INC$site".tgz" -T - $EXLUDE_TAR
fi
done
date
echo "start mysql databases backup"
MYSQL_DIR=$BACKUP_MYSQL$YEAR"_"$MONTH"/"$YEAR"_"$MONTH"_"$DAY"/";
test -d "$MYSQL_DIR" || mkdir -p "$MYSQL_DIR"
for db in `echo "show databases;" | mysql -u$MYSQL_USER -p$MYSQL_PASS`
do
if [[ $db != "Database" -a $db != "information_schema" -a $db != 'mysql' -a $EXCLUDE_DATABASES != *$db* ]];
then
echo $db
mysqldump -u$MYSQL_USER -p$MYSQL_PASS $db | gzip --best > $MYSQL_DIR$db".sql.gz"
fi
done
date
chmod -R 0600 $BACKUP_DIR
echo "start rsync"
rsync -avz --no-p --no-g --chmod=ugo=rwX $BACKUP_DIR $REMOTE_USER@$REMOTE_HOST:$REMOTE_BACKUP_DIR
date
echo "finish!"