-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbackup_server.sh
More file actions
67 lines (53 loc) · 1.76 KB
/
backup_server.sh
File metadata and controls
67 lines (53 loc) · 1.76 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
#!/bin/bash
SERVERS=(prison survival kitpvp)
BACKUPTIME=`date +%b-%d-%y` #get the current date
BACKUPDIR=/backupdrive/bedrock
WORKINGFOLDER=/home/bedrock
#---------------#MYSQL#-------------------------
DAYS_TO_KEEP=10 # 0 to keep forever
GZIP=1 # 1 = Compress
BACKUP_PATH=$BACKUPDIR/database
#----------------------------------------
# Get list of database names
databases=`mysql -e "SHOW DATABASES;" | tr -d "|" | grep -v Database`
#colours
RED=`tput setaf 1`
GREEN=`tput setaf 2`
NC=`tput sgr0` # No Color
for db in $databases;
do
if [ $db == 'information_schema' ] || [ $db == 'performance_schema' ] || [ $db == 'mysql' ] || [ $db == 'sys' ]; then
echo "Skipping database: $db"
continue
fi
date=$(date -I)
if [ "$GZIP" -eq 0 ] ; then
echo "Backing up database: $db without compression"
mysqldump --databases $db > $BACKUP_PATH/$date-$db.sql
else
echo "Backing up database: $db with compression"
mysqldump --databases $db | gzip -c > $BACKUP_PATH/$db-$date.gz
fi
done
for USR in "${SERVERS[@]}"
do
date
echo "${RED}Starting backup for $USR...${NC}"
FILENAME=$USR-$BACKUPTIME.tar.gz
SOURCEFOLDER=$WORKINGFOLDER/$USR #the folder that contains the files that we want to backup
BACKUPFOLDER=$BACKUPDIR/$FILENAME
date
echo "${RED}Creating archive ...${NC}"
tar -cpzf $BACKUPFOLDER -C $SOURCEFOLDER . #create the backup
echo "${GREEN}Backup complete for $USR.${NC}"
done
# Delete old Database backups
if [ "$DAYS_TO_KEEP" -gt 0 ] ; then
echo "Deleting backups older than $DAYS_TO_KEEP days"
find $BACKUP_PATH/* -mtime +$DAYS_TO_KEEP -exec rm {} \;
fi
# Delete old Server backups
if [ "$DAYS_TO_KEEP" -gt 0 ] ; then
echo "Deleting backups older than $DAYS_TO_KEEP days"
find $BACKUPDIR/* -mtime +$DAYS_TO_KEEP -exec rm {} \;
fi