-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDev_backup_script
More file actions
148 lines (116 loc) · 6.96 KB
/
Dev_backup_script
File metadata and controls
148 lines (116 loc) · 6.96 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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#!/bin/bash
# Get the current datestamp //
DATESTAMP=$(date +%d_%m_%Y)
# Specify your directory path here //
DIR_PATH="/mnt/c/Users/703375822/Documents/Pre-prod-Backup/$DATESTAMP"
##################################################################################################################################################
# Create a new directory with the datestamp //
mkdir -p "$DIR_PATH/TC_dev_BACKUPS"
# Define your Kubernetes namespaces, pods, and containers //
namespaces=("tc-vn-cc" "tc-vn-corp" "tc-vn-gpaslite" "tc-vn-ibs-adn" "tc-vn-gecars" "tc-vn-capital" "tc-vn-ibs-1" "tc-vn-perceptive" "tc-vn-ibs-2" "tc-vn-scx" "tc-vn-sss")
namespaces2=("dc-portal")
namespaces3=("dive")
# Define the remote directories in the pods where the files are located //
remote_dirs=("/opt/nifi/data_mount/" "/opt/nifi/data_mount/flow")
# Define specific files to copy from remote directories //
TC_files_1=("authorizations.xml" "users.xml")
TC_files_2=("flow.xml.gz")
# Define the local directory where files will be copied //
local_dir="$DIR_PATH/TC_dev_BACKUPS"
# Loop through namespaces
for namespace in "${namespaces[@]}"
do
# Define the pod for the current namespace //
pod="${namespace}-dev-thread-connect-0"
# Define the container for the current namespace //
container="tc-nifi"
echo "Copying files from pod $pod (container $container) in namespace $namespace..."
# Create a directory for the pod if it doesn't exist //
mkdir -p "$local_dir/$namespace"
# Use kubectl exec to cat and redirect content to a file //
for file in "${TC_files_1[@]}"
do
kubectl exec -n "$namespace" "$pod" -c "$container" -- cat "${remote_dirs[0]}/$file" > "$local_dir/$namespace/$file"
echo "##############################################################################################################"
echo "Successfully copied $file from pod $pod (container $container) in namespace $namespace."
echo "##############################################################################################################"
done
for file in "${TC_files_2[@]}"
do
kubectl exec -n "$namespace" "$pod" -c "$container" -- cat "${remote_dirs[1]}/$file" > "$local_dir/$namespace/$file"
echo "##############################################################################################################"
echo "Successfully copied $file from pod $pod (container $container) in namespace $namespace."
echo "##############################################################################################################"
done
echo "Finished copying files from pod $pod (container $container) in namespace $namespace."
echo "###################################################################################################################"
done
# Loop through namespaces2
for namespace in "${namespaces2[@]}"
do
# Define the pod for the current namespace //
pod="tc-dc-portal-prd-thread-connect-0"
# Define the container for the current namespace //
container="tc-nifi"
echo "Copying files from pod $pod (container $container) in namespace $namespace..."
# Create a directory for the pod if it doesn't exist //
mkdir -p "$local_dir/$namespace"
# Use kubectl exec to cat and redirect content to a file //
for file in "${TC_files_1[@]}"
do
kubectl exec -n "$namespace" "$pod" -c "$container" -- cat "${remote_dirs[0]}/$file" > "$local_dir/$namespace/$file"
echo "##############################################################################################################"
echo "Successfully copied $file from pod $pod (container $container) in namespace $namespace."
echo "##############################################################################################################"
done
for file in "${TC_files_2[@]}"
do
kubectl exec -n "$namespace" "$pod" -c "$container" -- cat "${remote_dirs[1]}/$file" > "$local_dir/$namespace/$file"
echo "##############################################################################################################"
echo "Successfully copied $file from pod $pod (container $container) in namespace $namespace."
echo "##############################################################################################################"
done
echo "Finished copying files from pod $pod (container $container) in namespace $namespace."
echo "###################################################################################################################"
done
# Loop through namespaces3
for namespace in "${namespaces3[@]}"
do
# Define the pods for the current namespace //
pods=("dive-dev-customer-tc-0" "dive-dev-product-tc-0")
# Define the container for the current namespace //
container="tc-nifi"
# Loop through pods
for pod in "${pods[@]}"
do
echo "Copying files from pod $pod (container $container) in namespace $namespace..."
# Create a directory for the pod if it doesn't exist //
if [[ "$pod" == "dive-dev-customer-tc-0" ]]; then
mkdir -p "$local_dir/$namespace/dive-customer"
local_path="$local_dir/$namespace/dive-customer"
fi
if [[ "$pod" == "dive-dev-product-tc-0" ]]; then
mkdir -p "$local_dir/$namespace/dive-product"
local_path="$local_dir/$namespace/dive-product"
fi
# Use kubectl exec to cat and redirect content to a file //
for file in "${TC_files_1[@]}"
do
kubectl exec -n "$namespace" "$pod" -c "$container" -- cat "${remote_dirs[0]}/$file" > "$local_path/$file"
echo "##############################################################################################################"
echo "Successfully copied $file from pod $pod (container $container) in namespace $namespace."
echo "##############################################################################################################"
done
for file in "${TC_files_2[@]}"
do
kubectl exec -n "$namespace" "$pod" -c "$container" -- cat "${remote_dirs[1]}/$file" > "$local_path/$file"
echo "##############################################################################################################"
echo "Successfully copied $file from pod $pod (container $container) in namespace $namespace."
echo "##############################################################################################################"
done
echo "Finished copying files from pod $pod (container $container) in namespace $namespace."
echo "###################################################################################################################"
done
done
echo "#########################################################################################################################"
echo "All files copied successfully | Script developed by OSS Vernova team | "