-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdomain_backup.sh
93 lines (70 loc) · 2.07 KB
/
domain_backup.sh
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
#!/bin/bash
# ssh-keygen -t rsa
# binaries we need
MYSQLDUMP=/usr/bin/mysqldump
TAR=/bin/tar
RSYNC=/usr/bin/rsync
# password for .dhbackups
#
# format of $HOME/.dhbackups is
#
# IBACKUP_USERNAME=username
# IBACKUP_PASSWORD=password
DHBACKUPS="$HOME/.dhbackups"
if [ ! -r $DHBACKUPS ]; then
echo "Need $DHBACKUPS file for username and password!"
exit 1
else
PERMS=`/bin/ls -l $DHBACKUPS | /usr/bin/awk '{print $1}'`
fi
if [ $PERMS != "-rw-------" ]; then
echo "Permissions on $DHBACKUPS are wrong!"
echo "Should be -rw-------, actually is $PERMS"
exit 2
fi
. $DHBACKUPS
export RSYNC_PASSWORD=$DHBACKUPS_PASSWORD
# today, for tagging the dumpfile
DATE=`/bin/date +%Y-%m-%d`
# place to dump everything
DUMPDIR="$HOME/backup_data_tmp"
DUMPDIR_DATE="$DUMPDIR/$DATE"
DUMPDIR_BK_FOLDER_FILES="$DUMPDIR_DATE/files"
DUMPDIR_BK_FOLDER_DATABASES="$DUMPDIR_DATE/database"
echo $DUMPDIR_BK_FOLDER_FILES
if [ ! -d $DUMPDIR ]; then
mkdir $DUMPDIR
mkdir $DUMPDIR_DATE
mkdir $DUMPDIR_BK_FOLDER_FILES
mkdir $DUMPDIR_BK_FOLDER_DATABASES
fi
if [ ! -x $MYSQLDUMP ]; then
echo "Need $MYSQLDUMP!"
exit 3
fi
if [ ! -x $RSYNC ]; then
echo "Need $RSYNC!"
exit 4
fi
cd $DUMPDIR
echo -n "creating tar.gz arcvhive of $HOME/$FOLDER_TO_BACKUP..."
$TAR czvf $DUMPDIR_BK_FOLDER_FILES/site.tar.gz $HOME/$FOLDER_TO_BACKUP
echo "done!"
echo -n "dumping database to $DUMPDIR_BK_FOLDER_DATABASES/$DATABASE_NAME.sql... "
$MYSQLDUMP $DATABASE_NAME > $DUMPDIR_BK_FOLDER_DATABASES/$DATABASE_NAME.sql
echo "done!"
if [ -e $DUMPDIR_BK_FOLDER_DATABASES/$DATABASE_NAME.sql ]; then
echo -n "change directory to $DUMPDIR_BK_FOLDER_DATABASES ..."
cd $DUMPDIR_BK_FOLDER_DATABASES
echo -n "creating tar.gz arcvhive of $DUMPDIR_BK_FOLDER_DATABASES/$DATABASE_NAME.sql ..."
$TAR czvf $DATABASE_NAME.tar.gz ./$DATABASE_NAME.sql
echo "done!"
echo -n "deleting $DUMPDIR_BK_FOLDER_DATABASES/$DATABASE_NAME.sql ..."
rm $DATABASE_NAME.sql
echo "done!"
fi
cd $HOME
$RSYNC -r -v -z -t --delete-after $DUMPDIR/ $DHBACKUPS_USERNAME@$DHBACKUPS_SERVER:~/backup/$FOLDER_TO_BACKUP
echo -n "Cleaning up... "
/bin/rm -rfv $DUMPDIR
echo "done!"