-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcassandra_backup_dc.sh
More file actions
executable file
·57 lines (44 loc) · 1.49 KB
/
Copy pathcassandra_backup_dc.sh
File metadata and controls
executable file
·57 lines (44 loc) · 1.49 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
#/bin/bash
#
BACKUP_DIR=/home/mobio/backups
HOST=''
PORT=''
USERNAME=''
PASSWORD=''
_DATA_DIR=/home/mobio/cassandra/data
_SNAPSHOT_NAME=snp-$(date +%F-%H%M-%S)
# keep minimum 2 days
for k in $(seq 2 10); do
old_file=cassandra_$(date --date="$k days ago" "+%Y%m%d")
rm -rf $old_file
done
# run dump data
DIR_NAME=cassandra_$(date '+%Y%m%d')
mkdir -p $BACKUP_DIR/$DIR_NAME
cd $BACKUP_DIR
cqlsh $HOST $PORT -u $USERNAME -p "$PASSWORD" -e "describe keyspace profiling_v3" > $BACKUP_DIR/$DIR_NAME/profiling_v3.cql;
cqlsh $HOST $PORT -u $USERNAME -p "$PASSWORD" -e "describe schema" > $BACKUP_DIR/$DIR_NAME/schema.cql;
###### Create snapshots for all keyspaces
echo "creating snapshots for all keyspaces ....."
/usr/bin/nodetool snapshot -t $_SNAPSHOT_NAME
###### Get Snapshot directory path
_SNAPSHOT_DIR_LIST=`find $_DATA_DIR -type d -name snapshots|awk '{gsub("'$_DATA_DIR'", "");print}' > snapshot_dir_list`
## Create directory inside backup directory. As per keyspace name.
for i in `cat snapshot_dir_list`
do
if [ -d $_BACKUP_SNAPSHOT_DIR/$i ]
then
echo "$i directory exist"
else
mkdir -p $_BACKUP_SNAPSHOT_DIR/$i
echo $i Directory is created
fi
done
### Copy default Snapshot dir to backup dir
find $_DATA_DIR -type d -name $_SNAPSHOT_NAME > snp_dir_list
for SNP_VAR in `cat snp_dir_list`;
do
## Triming _DATA_DIR
_SNP_PATH_TRIM=`echo $SNP_VAR|awk '{gsub("'$_DATA_DIR'", "");print}'`
cp -prvf "$SNP_VAR" "$_BACKUP_SNAPSHOT_DIR$_SNP_PATH_TRIM";
done