Skip to content

Commit 82b2e2a

Browse files
committed
fix for cluster transfer sizes
1 parent 07162bd commit 82b2e2a

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

share/github-backup-utils/ghe-rsync-size

100755100644
Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ fi
2121

2222
transfer_size()
2323
{
24+
local host=$GHE_HOSTNAME
2425
local backup_data=$1
2526
if [[ "$1" == "mssql" ]]; then
2627
data_user_dir="/data/user/$1/backups"
@@ -58,20 +59,36 @@ transfer_size()
5859
;;
5960
esac
6061

62+
ghe-ssh "$host" "[ -f /etc/github/cluster ]"
63+
cluster_status=$?
64+
65+
if [[ $cluster_status -eq 0 ]]; then
66+
cluster_conf_out=$(ghe-ssh "$host" "cat /data/user/common/cluster.conf")
67+
cluster_nodes_output=$(ghe-ssh "$host" "ghe-cluster-nodes -i")
68+
if [[ ( "$1" == "elasticsearch" || "$1" == "storage" || "$1" == "pages" ) ]]; then
69+
host_server=$(echo "$cluster_conf_out" | awk -v srv="$backup_data-server = true" '/cluster/ { prevA = $0 } $0 ~ srv { print prevA }' | head -1 | awk -F '"' '{print $2}')
70+
elif [[ "$1" == "mysql" ]]; then
71+
host_server=$(ghe-ssh "$host" "ghe-config cluster.mysql-master")
72+
elif [[ "$1" == "repositories" ]]; then
73+
host_server=$(echo "$cluster_conf_out" | awk '/git-server = true/ { print prevA } /cluster/ { prevA = $0 }' | head -1 | awk -F '"' '{print $2}')
74+
fi
75+
host=$(echo "$cluster_nodes_output" | grep "$host_server" | awk '{print $2}' | head -1)
76+
fi
77+
6178
if [ -d "${GHE_DATA_DIR}/current/$1" ]; then
6279
total_file_size=$(ghe-rsync -arn --stats \
6380
-e "ssh -q $GHE_EXTRA_SSH_OPTS -p 122 -l admin" \
6481
--rsync-path="sudo -u $user rsync" \
6582
"$link_dest"/"$1" \
6683
--ignore-missing-args \
67-
"$GHE_HOSTNAME:$data_user_dir/" \
84+
"$host:$data_user_dir/" \
6885
"$dest_dir/" | grep "Total transferred file size" | sed 's/.*size: //; s/,//g')
6986
else
7087
total_file_size=$(ghe-rsync -arn --stats \
7188
-e "ssh -q $GHE_EXTRA_SSH_OPTS -p 122 -l admin" \
7289
--rsync-path="sudo -u $user rsync" \
7390
--ignore-missing-args \
74-
"$GHE_HOSTNAME:$data_user_dir/" \
91+
"$host:$data_user_dir/" \
7592
"$dest_dir/" | grep "Total transferred file size" | sed 's/.*size: //; s/,//g')
7693
fi
7794

0 commit comments

Comments
 (0)