|
21 | 21 |
|
22 | 22 | transfer_size()
|
23 | 23 | {
|
| 24 | + local host=$GHE_HOSTNAME |
24 | 25 | local backup_data=$1
|
25 | 26 | if [[ "$1" == "mssql" ]]; then
|
26 | 27 | data_user_dir="/data/user/$1/backups"
|
@@ -58,20 +59,36 @@ transfer_size()
|
58 | 59 | ;;
|
59 | 60 | esac
|
60 | 61 |
|
| 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 | + |
61 | 78 | if [ -d "${GHE_DATA_DIR}/current/$1" ]; then
|
62 | 79 | total_file_size=$(ghe-rsync -arn --stats \
|
63 | 80 | -e "ssh -q $GHE_EXTRA_SSH_OPTS -p 122 -l admin" \
|
64 | 81 | --rsync-path="sudo -u $user rsync" \
|
65 | 82 | "$link_dest"/"$1" \
|
66 | 83 | --ignore-missing-args \
|
67 |
| - "$GHE_HOSTNAME:$data_user_dir/" \ |
| 84 | + "$host:$data_user_dir/" \ |
68 | 85 | "$dest_dir/" | grep "Total transferred file size" | sed 's/.*size: //; s/,//g')
|
69 | 86 | else
|
70 | 87 | total_file_size=$(ghe-rsync -arn --stats \
|
71 | 88 | -e "ssh -q $GHE_EXTRA_SSH_OPTS -p 122 -l admin" \
|
72 | 89 | --rsync-path="sudo -u $user rsync" \
|
73 | 90 | --ignore-missing-args \
|
74 |
| - "$GHE_HOSTNAME:$data_user_dir/" \ |
| 91 | + "$host:$data_user_dir/" \ |
75 | 92 | "$dest_dir/" | grep "Total transferred file size" | sed 's/.*size: //; s/,//g')
|
76 | 93 | fi
|
77 | 94 |
|
|
0 commit comments