Skip to content

Commit e6aa5aa

Browse files
committed
Checks for backup host reqs
1 parent 77171b0 commit e6aa5aa

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

bin/ghe-host-check

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,4 +144,44 @@ if [ -z "$supported" ]; then
144144
exit 1
145145
fi
146146

147+
#Display dir requirements for repositories and mysql
148+
backup_dir=${GHE_DATA_DIR}
149+
available_space=$(df $backup_dir | awk 'END{print $4}')
150+
repo_disk_size=$(ghe-ssh "$host" sudo du -sh /data/user/repositories | awk '{print $1}')
151+
mysql_disk_size=$(ghe-ssh "$host" sudo du -sh /data/user/mysql | awk '{print $1}')
152+
# Convert the data size to kilobytes
153+
case "$repo_disk_size" in
154+
*T) repo_disk_size=$(( $(echo "$repo_disk_size" | sed 's/T/000000000/') )) ;;
155+
*G) repo_disk_size=$(( $(echo "$repo_disk_size" | sed 's/G/000000/') )) ;;
156+
*M) repo_disk_size=$(( $(echo "$repo_disk_size" | sed 's/M/000/') )) ;;
157+
*K) repo_disk_size=$(( $(echo "$repo_disk_size" | sed 's/K//') )) ;;
158+
esac
159+
if [[ $available_space -lt $repo_disk_size ]]; then
160+
echo "There is not enough disk space for the backup"
161+
exit 1
162+
fi
163+
164+
#Check rsync, openssh & jq versions
165+
rsync_version=$(rsync --version | grep 'version' | awk '{print $3}')
166+
if awk "BEGIN {exit !($rsync_version < 2.6.4)}" &> /dev/null; then
167+
echo "rsync version $rsync_version in backup-host does not meet minimum requirements."
168+
echo "Please make sure you have the minimum required version of rsync installed"
169+
exit 2
170+
fi
171+
172+
ssh_version=$(ssh -V 2>&1 | awk '{print $1}'|grep -oPm 1 '[\d\.]+' |head -1)
173+
if awk "BEGIN {exit !($ssh_version < 5.6)}" &> /dev/null; then
174+
echo "openSSH version $ssh_version in backup-host does not meet minimum requirements."
175+
echo "Please make sure the minimum required version of openSSH is installed"
176+
exit 2
177+
fi
178+
179+
jq_version=$(jq --version |awk -F\- '{print $2}')
180+
if awk "BEGIN {exit !($jq_version < 1.5)}" &> /dev/null; then
181+
echo "jq version $jq_version in backup-host does not meet minimum requirements."
182+
echo "Please make sure you have the minimum required version of jq installed"
183+
exit 2
184+
fi
185+
186+
147187
echo "Connect $hostname:$port OK (v$version)"

0 commit comments

Comments
 (0)